초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 154

 
paladin800 :
저것들. 숫자 1.33182에서 1.3318을 가져와야 합니까? 소수점 이하 5자리를 버리거나 소수점 이하 4자리까지 반올림하면 됩니다. 예를 들어, 1.331 8 6 에서 1.331 8 또는 1.331 9 ?

버그가 있는지 없는지 궁금합니다. 내 예에서 double에서 int로 캐스팅할 때 결과는 하나 적습니다. 직접 확인하시기 바랍니다.

   double max= NormalizeDouble ( 1.33182 ,4);  
   //double max=1.3318;
   Alert ( int (max* 10000 ));
경고 는 13318을 제공해야 하지만 13317을 제공합니다. 또한 int로 이어지지 않으면 올바르게 13318.0을 제공합니다.
 

표현에 차이가 있는지 알려주십시오.

 if (bufferclose[ 1 ]<=MaxLine( 1 )-m_open_bar_error*ticksize && bufferopen[ 1 ]<=MaxLine( 1 )-m_open_bar_error*ticksize)

그리고

 if ( ( bufferclose[ 1 ]<=MaxLine( 1 )-m_open_bar_error*ticksize ) && ( bufferopen[ 1 ]<=MaxLine( 1 )-m_open_bar_error*ticksize ) )
 
sgreen :

표현에 차이가 있는지 알려주십시오.

그리고

무언가 잘못되었다고 생각되면 다음을 수행하십시오.

 if (bufferclose[ 1 ]<= ( MaxLine( 1 )-m_open_bar_error*ticksize ) && bufferopen[ 1 ]<= ( MaxLine( 1 )-m_open_bar_error*ticksize ) )
 
Rorschach :

버그가 있는지 없는지 궁금합니다. 내 예에서 double에서 int로 캐스팅할 때 결과는 하나 적습니다. 직접 확인하시기 바랍니다.

경고는 13318을 제공해야 하지만 13317을 제공합니다. 또한 int로 이어지지 않으면 올바르게 13318.0을 제공합니다.
경고는 오류를 발생시키지 않습니다. 저것들. 버그가 없습니다. 사실은 정규화로 인해 요청된 십진법 에 가장 가까운 이진 형식으로 숫자가 표시되지만 위 또는 아래(귀하의 경우)와 일치하지 않을 수 있습니다. 유한 소수로 표현할 수 있는 것을 항상 유한 소수로 표현할 수는 없기 때문에 바이너리. 표현
 int (max* 10000 )

반올림이 아닌 소수 부분의 거부로 이어지며(즉, MathRound()보다 MathFloor()와 더 비슷하게 보입니다) 귀하의 경우 정규화된 숫자 는 정확히 13318이 아닐 수 있지만 13317.999999999999997

, 제한된 수의 문자로 분수 형식으로 출력할 때 올바른(예상) 결과로 반올림하게 되고, 분수 부분이 폐기될 때 ....이해합니다.

나는 내가 명확하게 설명했기를 바랍니다.

 
pronych :
Sharp의 부분 유사체가 있습니까? 또는 어떻게 할 것인가?

아날로그가 없습니다. #include <partial_class_code.mqh>를 사용하여 정의의 일부를 삽입할 수 있습니다.

일부 액터는 이러한 방식으로 다중 상속을 시뮬레이션하기도 합니다. // 나는 그것을 하지 않는다, 나는 그것 없이 하는 것에 익숙하다. 그리고 심지어, 나는 그것을 인정하기가 부끄럽다. 나는 그것을 좋아한다. :)

 
paladin800 :

무언가 잘못되었다고 생각되면 다음을 수행하십시오.

이미 마쳤어. 그냥 궁금합니다.
 
sgreen :
이미 마쳤어. 그냥 궁금합니다.

분명한. 이전 질문으로 돌아가서 기록의 본질은 다음과 같은 비교로 이끌어낼 수 있습니다.

 if (A<=B && C<=D)     // 1
if ((A<=B) && (C<=D)) // 2

이 항목들 사이에는 차이가 없습니다. 동시에 if-s 내부의 수학적 계산 은 다음과 같이 대괄호로 묶는 것이 좋습니다.

 if (A<=(B1+B2*B3) && C<=(D1-D2*D3))
Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
MetaDriver :
경고는 오류를 발생시키지 않습니다. 저것들. 버그가 없습니다. 사실은 정규화로 인해 요청된 십진법 에 가장 가까운 이진 형식으로 숫자가 표시되지만 위 또는 아래(귀하의 경우)와 일치하지 않을 수 있습니다. 유한 소수로 표현할 수 있는 것을 항상 유한 소수로 표현할 수는 없기 때문에 바이너리. 표현

반올림이 아닌 소수 부분의 거부로 이어지며(즉, MathRound()보다 MathFloor()와 더 비슷하게 보입니다) 귀하의 경우 정규화된 숫자 는 정확히 13318이 아닐 수 있지만 13317.999999999999997

, 제한된 수의 문자로 분수 형식으로 출력할 때 올바른(예상) 결과로 반올림하게 되고, 분수 부분이 폐기될 때 ....이해합니다.

나는 내가 명확하게 설명했기를 바랍니다.

감사합니다. 이해합니다.

또 다른 질문은 int로의 번역 없이는 할 수 없는 경우 이것을 처리하는 방법입니다.

 
고문을 테스트 할 때 중개인의 수수료를 고려하는 방법을 알려주십시오.
 
Rorschach :

감사합니다. 이해합니다.

또 다른 질문은 int로의 번역 없이는 할 수 없는 경우 이것을 처리하는 방법입니다.

그리고 몇 개의 엡실론을 추가합니다.

DBL_EPSILON

1.0+DBL_EPSILON != 1.0 조건을 만족하는 가장 작은 수


Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Константы числовых типов - Документация по MQL5
사유: