오류, 버그, 질문 - 페이지 705 1...698699700701702703704705706707708709710711712...3184 새 코멘트 Victor 2012.04.07 08:49 #7041 Yedelkin : 그리고 Print() 함수의 잼에 대한 질문은 열려있을 것입니다? :) 당신이 원하는대로. Yedelkin 2012.04.07 09:06 #7042 victorg : 당신이 원하는대로. 확인. 그럼 제가 가겠습니다. 그래서 Print() 함수 설명에 " Double type 데이터는 dot 뒤에 소수점 이하 16자리의 정확도로 출력된다."라고 되어 있다. 실제로 Print() 함수는 다소 반올림된 데이터를 출력하는 것으로 나타났습니다. void OnStart () { double a,b; a= 7.0 / 200.0 ; b= 7.0 /a; Print (" Print (b)=",b); Print (" Print ( DoubleToString (b, 16 ))=", DoubleToString (b, 16 )); } ND 0 Victorg2 (EURUSD,M1) 11:04:42 인쇄(b)= 200.0 MP 0 Victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199.999999999999716 Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float) www.mql5.com Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5 Errors, bugs, questions Solving equations Reading the current Depth Vladimir Gomonov 2012.04.07 13:19 #7043 Yedelkin : 확인. 그럼 제가 가겠습니다. 그래서 Print() 함수 설명에 " Double type 데이터는 dot 뒤에 소수점 이하 16자리의 정확도로 출력된다."라고 되어 있다. 실제로 Print() 함수는 다소 반올림된 데이터를 출력하는 것으로 나타났습니다. ND 0 Victorg2 (EURUSD,M1) 11:04:42 인쇄(b)= 200.0 MP 0 Victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199.999999999999716 123.4567890123456(7>5 그래서 반올림) 모든 것이 설명과 일치하는 것 같습니다. 잼이 뭔가요? 0이 출력되지 않습니까? Yedelkin 2012.04.07 14:05 #7044 MetaDriver : 모든 것이 설명과 일치하는 것 같습니다. 잼이 뭔가요? 0이 출력되지 않습니까? 문제는 Print() 함수가 " 점 뒤 의 16 자리 소수점 이하 자릿수를 가진 double 형식의 데이터"를 출력하지 않는다는 것입니다. --- 2012.04.07 15:26 #7045 Yedelkin : 문제는 Print() 함수가 " 점 뒤 의 16 자리 소수점 이하 자릿수를 가진 double 형식의 데이터"를 출력하지 않는다는 것입니다. 확인하다 Print (" Print (b)=" + b); Yedelkin 2012.04.07 15:51 #7046 sergeev : 확인하다 게으르지 않고 확인되었습니다. //+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ void OnStart () { double a,b; a= 7.0 / 200.0 ; b= 7.0 /a; //Print("Print(b)=",b); Print ( "Print(b)=" +b); Print ( "Print(DoubleToString(b,16))=" , DoubleToString (b, 16 )); } //+------------------------------------------------------------------+ 첫째, 컴파일할 때 "'숫자'에서 '문자열'로의 암시적 변환 Victorg2.mq5 12 22"가 생성됩니다. 둘째, IS 0 Victorg2 (EURUSD,M1) 17:46:45 Print(b)=200 PJ 0 Victorg2 (EURUSD,M1) 17:46:45 Print( DoubleToString (b,16))=199.999999999999716 Renat Fatkhullin 2012.04.07 17:35 #7047 전체 형식 제어의 경우 적절한 PrintFormat 함수 를 사용하십시오. void OnStart () { double a,b; a= 7.0 / 200.0 ; b= 7.0 /a; printf ( "Format: %.15lf" ,b); PrintFormat ( "Format: %.15lf" ,b); } Format: 199.999999999999970 Format: 199.999999999999970 기본적으로 인쇄는 일반 이중 반올림 모드를 소수점 이하 4자리까지 사용합니다. 문서를 업데이트하겠습니다. Документация по MQL5: Общие функции / PrintFormat www.mql5.com Общие функции / PrintFormat - Документация по MQL5 Vladimir Gomonov 2012.04.07 18:56 #7048 구조체에 대한 포인터(핸들)를 제공하십시오(정적 배열을 포함하는 배열이 선호됨). 클래스를 래핑하는 것은 종종 나쁜 생각입니다. struct SEmpty { }; class CEmpty { }; void OnStart () { Print ( "sizeof(SEmpty) = " , sizeof (SEmpty)); Print ( "sizeof(CEmpty) = " , sizeof (CEmpty)); } 2012.04.07 20:49:38 SizeOf_Test (USDJPY,M30) sizeof(CEempty) = 16 2012.04.07 20:49:38 SizeOf_Test (USDJPY,M30) sizeof(SEmpty) = 0 Renat Fatkhullin 2012.04.07 19:01 #7049 MetaDriver : 구조체에 대한 포인터(핸들)를 제공하십시오(정적 배열을 포함하는 배열이 선호됨). 어떤 의미에서 그리고 왜? Vladimir Gomonov 2012.04.07 19:23 #7050 Renat : 1. 어떤 의미에서 그리고 2. 왜? 하나. CEmpty *C[]; // Это работает. SEmpty *S[]; // Error : 'SEmpty' - class type expected SizeOf_Test.mq5 19 1 구조(배열)에 대한 포인터 배열을 생성합니다. 후속 초기화 for(i){ S[i] = GetPointer(StaticStruct[i]); } 2. 의미 있는 데이터 배열의 견고한(포장된) 형태를 유지합니다. 원시 OpenCL 버퍼에 대한 데이터 출력으로 작업할 때 중요합니다(또는 DLL로 보내기, 파일에 쓰기 등). 이것은 데이터를 다시 쓰지 않고 데이터 액세스를 재정렬할 가능성(예: 포인터 를 정렬할 때 )을 유지(나타납니다)합니다. 1...698699700701702703704705706707708709710711712...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그리고 Print() 함수의 잼에 대한 질문은 열려있을 것입니다? :)
당신이 원하는대로.
확인. 그럼 제가 가겠습니다. 그래서 Print() 함수 설명에 " Double type 데이터는 dot 뒤에 소수점 이하 16자리의 정확도로 출력된다."라고 되어 있다. 실제로 Print() 함수는 다소 반올림된 데이터를 출력하는 것으로 나타났습니다.
void OnStart () { double a,b; a= 7.0 / 200.0 ; b= 7.0 /a; Print (" Print (b)=",b); Print (" Print ( DoubleToString (b, 16 ))=", DoubleToString (b, 16 )); }MP 0 Victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199.999999999999716
확인. 그럼 제가 가겠습니다. 그래서 Print() 함수 설명에 " Double type 데이터는 dot 뒤에 소수점 이하 16자리의 정확도로 출력된다."라고 되어 있다. 실제로 Print() 함수는 다소 반올림된 데이터를 출력하는 것으로 나타났습니다.
MP 0 Victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))= 199.999999999999716
123.4567890123456(7>5 그래서 반올림)
모든 것이 설명과 일치하는 것 같습니다. 잼이 뭔가요? 0이 출력되지 않습니까?
문제는 Print() 함수가 " 점 뒤 의 16 자리 소수점 이하 자릿수를 가진 double 형식의 데이터"를 출력하지 않는다는 것입니다.
확인하다
Print (" Print (b)=" + b);확인하다
게으르지 않고 확인되었습니다.
첫째, 컴파일할 때 "'숫자'에서 '문자열'로의 암시적 변환 Victorg2.mq5 12 22"가 생성됩니다.
둘째,
IS 0 Victorg2 (EURUSD,M1) 17:46:45 Print(b)=200
PJ 0 Victorg2 (EURUSD,M1) 17:46:45 Print( DoubleToString (b,16))=199.999999999999716
전체 형식 제어의 경우 적절한 PrintFormat 함수 를 사용하십시오.
기본적으로 인쇄는 일반 이중 반올림 모드를 소수점 이하 4자리까지 사용합니다. 문서를 업데이트하겠습니다.구조체에 대한 포인터(핸들)를 제공하십시오(정적 배열을 포함하는 배열이 선호됨).
클래스를 래핑하는 것은 종종 나쁜 생각입니다.
2012.04.07 20:49:38 SizeOf_Test (USDJPY,M30) sizeof(SEmpty) = 0
구조체에 대한 포인터(핸들)를 제공하십시오(정적 배열을 포함하는 배열이 선호됨).
어떤 의미에서 그리고 왜?
1. 어떤 의미에서 그리고
2. 왜?
하나.
CEmpty *C[]; // Это работает. SEmpty *S[]; // Error : 'SEmpty' - class type expected SizeOf_Test.mq5 19 1구조(배열)에 대한 포인터 배열을 생성합니다. 후속 초기화 for(i){ S[i] = GetPointer(StaticStruct[i]); }
2. 의미 있는 데이터 배열의 견고한(포장된) 형태를 유지합니다.
원시 OpenCL 버퍼에 대한 데이터 출력으로 작업할 때 중요합니다(또는 DLL로 보내기, 파일에 쓰기 등).
이것은 데이터를 다시 쓰지 않고 데이터 액세스를 재정렬할 가능성(예: 포인터 를 정렬할 때 )을 유지(나타납니다)합니다.