MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 107

 
안녕하세요! MQL을 효과적으로 배우려면 어떻게 해야 합니까? 쉬운 방법을 찾는 것이 아니라 그냥 알아내고 싶을 뿐입니다!코발레프의 교과서를 공부하고, 동영상을 보고, 거기에 쓰여진 코드를 반복해 봅니다. 그런데 교과서에 나온 코드를 반복해도 오류가 너무 많다.... 업데이트가 이루어졌다는 것을 알고 이 사이트가 도움이 될 수 있다고 들었습니다. 그래서 여기 있습니다! 어떻게 해야 합니까?
 
내가 급한 걸지도 몰라!
 
Alexey Kozitsyn :
구분 기호 "."를 사용하여 문자열을 구문 분석합니다.

나쁘지 않은 생각...

알렉세이 빅토로프 :
아무 것도 구문 분석할 필요가 없습니다. 일반 숫자를 보기 위해 문자열로 변환합니다. 계산을 위해 아무것도 할 필요가 없습니다.

음, 저항할 수 없는 변태 욕구가 있는 경우 문자열을 다시 숫자 StringToDouble()로 변환하고 _Point에 필요한 문자 수(아마도 _Digits)로 정규화하여 곱합니다.

문제의 사실은 문자열을 3개의 숫자로 구문 분석해야 하며 숫자로 변환할 수 없다는 것입니다. 매우 큰 숫자는 언어용으로 판명되었습니다.

다음은 그러한 숫자의 예입니다

long CalcY= StringToDouble ( "111111111111111111" );
Print ( "CalcY=" ,CalcY);

숫자 111111111111111104를 출력합니다.

 
FOTOGRAF14 :
내가 급한 걸지도 몰라!
그러나 이것은 필요하지 않습니다! 서두르는 것은 벼룩을 잡을 때만 필요합니다((c) 군대 유머).
 
-Aleks- :

문제의 사실은 문자열을 3개의 숫자로 구문 분석해야 하며 숫자로 변환할 수 없다는 것입니다. 매우 큰 숫자는 언어용으로 판명되었습니다.

다음은 그러한 숫자의 예입니다

long CalcY= StringToDouble ( "111111111111111111" );
Print ( "CalcY=" ,CalcY);

숫자 111111111111111104를 출력합니다.

전래 동화...
 
Vitalie Postolache :
전래 동화...

직접 해보십시오.

long CalcY= StringToDouble ( "111111111111111111" );
Print ( "CalcY=" ,CalcY);

long CalcZ= StringToInteger ( "111111111111111111" );
Print ( "CalcZ=" ,CalcZ);

double Test=CalcZ;
Print ( "Test=" ,Test);

 
-Aleks- :

직접 해보십시오.

long CalcY= StringToDouble ( "111111111111111111" );
Print ( "CalcY=" ,CalcY);

long CalcZ= StringToInteger ( "111111111111111111" );
Print ( "CalcZ=" ,CalcZ);

double Test=CalcZ;
Print ( "Test=" ,Test);

"너무 큰 숫자"에 대해 이야기하고 있지만 형식에서 형식으로 변환하면 다음과 같이 코드도 올바르지 않습니다.

long CalcY=( long ) StringToInteger ( "111111111111111111" );
Print ( "CalcY=" , IntegerToString (CalcY));

당신이 불평하는 것은 많은 숫자가 아니라 텍스트로 출력하는 결함입니다.

 
Vitalie Postolache :
나는 "너무 크다"에 대해 이야기하고 있습니다.
정확한 계산을 하기에는 너무 큰 숫자입니다. 그렇지 않으면 숫자 끝에 있는 오류를 어떻게 설명해야 할까요?
 
-Aleks- :
정확한 계산을 하기에는 너무 큰 숫자입니다. 그렇지 않으면 숫자 끝에 있는 오류를 어떻게 설명해야 할까요?
위에 추가됨.
 
Vitalie Postolache :
위에 추가됨.

그래서 나는 그러한 변형을 가지고 있습니다. 당신은 줄을 길게 만들 수 있지만 쉼표로 계산하려면 두 배가 필요합니다.