그리고 단순히 두 개의 double을 비교하고 bool 결과가 필요한 경우 또 다른 솔루션이 있습니다.
// return true if same double value within digits comparisonbool CompareDoubleEqual( double a, double b, int digits)
{
if ( MathAbs (a - b) > MathPow ( 10 , -digits))
return ( false );
return ( true );
}
모든 장애물을 뛰어 넘고 모든 솔루션을 시도한 사람들을 위해 여기에 내가 나 자신을 위한 매우 안정적인 솔루션으로 쓴 내용이 있습니다.
여전히 솔루션을 찾고 있다면 다음과 같은 것을 발견했음을 의미합니다.
107.123111111 및 107.123999를 비교하면 이중 반올림 분산의 결과로 107.12 3 이 10712 4 와 비교됩니다.
다음은 비교에서 이중 반올림 분산을 제거 하기 위해 +1과 -1의 범위를 무시하는 이 문제에 대한 내 솔루션입니다.
이 시도:
그리고 단순히 두 개의 double을 비교하고 bool 결과가 필요한 경우 또 다른 솔루션이 있습니다.
포인트 차이가 나면 true를 반환합니다. 어느 것이 잘못된 것입니까? 그들은 동등하지 않습니다.
단순화
손절매 후 주문 증가 - MQL4 프로그래밍 포럼 #1.3 2017.05.29