NormalizeDouble을 사용하여 MT4에서 숫자 반올림 - 페이지 12

 
lilita bogachkova :
글쎄, 당신은 그들이 그러한 추가 기능 MathCeil () 을 생각해 냈다는 서비스 데스크에 편지를 써야합니다. :)
달라서 크게 신경쓰이진 않아요 :)
 
Алексей Тарабанов :
정수 A = 더블 B + 0.5
그는 "먼저 분수에 0.5를 더한 다음 결과에서 분수 부분잘라내고 정수 반올림 결과가 남습니다 . " 는 반올림하지 않습니다.
 void OnStart ()
  {
   ushort   Characters_delete= 14 ;
   for ( int i= 0 ;i<=Characters_delete;i++)
     {
       double v1=i+ 0.999999999999999 ;

       int v2=v1+ 0.5 ;
       Print ( "v1 = " ,i, " = " , DoubleToString (v2, 2 ));
     }
  }
 
Vasyl Nosal :
그럼 5
5는 무엇입니까? 이러한 숫자를 정규화하면 9가 모두 0으로 바뀌므로 정규화한 다음 버리면 잘못된 결과가 나타납니다.
 
lilita bogachkova :
"먼저 소수에 0.5를 더한 다음 결과에서 소수 부분잘라내고 정수로 반올림한 결과가 남습니다."라는 그의 말이 옳습니다. 그러나 MQ는 우리에게 MathCeil() 신경 쓰다.
Sunny, 감사합니다. 하지만 MathCeil은 입력과 출력 모두에서 복식으로만 작동합니다. :)
 
Алексей Тарабанов :
Sunny, 감사합니다. 하지만 MathCeil은 입력과 출력 모두에서 복식으로만 작동합니다. :)
해결됨: int A = (int) MathCeil (이중 B);
 
lilita bogachkova :
해결: int A = (int) MathCeil(더블 B);
죄송합니다: int A = (int) MathCeil (double B +0.5 )
 
Алексей Тарабанов :
죄송합니다: int A = (int) MathCeil(double B +0.5 )
아님: 해결됨: int A = (int) MathCeil (이중 B);
 
lilita bogachkova :
아님: 해결됨: int A = (int) MathCeil(double B);
시도: int A = MathCeil (2.6)
 
Алексей Тарабанов :
시도: int A = MathCeil(2.4)

정수 A = MathCeil (2.4)=3

정수 A = MathCeil(2.4+0.5) = 3

하지만

정수 A = MathCeil(2.6+0.5) =4

정수 A = MathCeil(2.6) = 3

 
lilita bogachkova :

정수 A = MathCeil(2.4)=3

정수 A = MathCeil(2.4+0.5) = 3

하지만

정수 A = MathCeil(2.6+0.5) = 4

악마는 속았다 ... 2.6, 물론. 숫자가 이상하다...