NormalizeDouble

플로팅 포인트 숫자를 지정된 정확도로 반올림 합니다.

double  NormalizeDouble(
   double  value,      // 정규화된 수
   int     digits      // 소수점 아래의 자릿수
   );

매개변수

[in] 플로팅 포인트가 있는 값.

자릿수

[in]  정확도 형식, 점 뒤의 자릿수(0-8).

값 반환

사전 설정 정확도와 함께 double 유형의 값.

주의

StopLoss, TakeProfit의 계산된 값과 보류 중인 주문에 대한 공개 가격 값은 Digits()로 얻을 수 있는 정확한 값으로 정규화 해야합니다.

Print() 기능을 사용하여 저널에 출력할 때 정규화된 숫자에 예상보다 많은 소수 자릿수가 포함될 수 있습니다. 예를 들어:

   double a=76.671;             // 소수점 3자리 정규화 숫자
   Print("Print(76.671)=",a);   // 있는 그대로 출력
   Print("DoubleToString(a,8)=",DoubleToString(a,8)); // 사전 설정 정확도록 출력

터미널에 다음이 있습니다:

 DoubleToString(a,8)=76.67100000

 Print(76.671)=76.67100000000001

 

예를 들어:

   double pi=M_PI;
   Print("pi = ",DoubleToString(pi,16));
      
   double pi_3=NormalizeDouble(M_PI,3);
   Print("NormalizeDouble(pi,3) = ",DoubleToString(pi_3,16))
   ;
   double pi_8=NormalizeDouble(M_PI,8);
   Print("NormalizeDouble(pi,8) = ",DoubleToString(pi_8,16));
   
   double pi_0=NormalizeDouble(M_PI,0);
   Print("NormalizeDouble(pi,0) = ",DoubleToString(pi_0,16));
/*
  결과:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999
   NormalizeDouble(pi,8)= 3.1415926499999998
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

추가 참조

DoubleToString, Real types (double, float), Typecasting