NormalizeDouble

把浮点类型转变成指定精确度

double  NormalizeDouble(

   double  value,      // 标准化号码

   int     digits      // 小数点后的数字数

   );

参量

value

[in] 浮点类型值

digits

[in]  精确度模式,浮点数字 (0-8).

返回值

预先设置的双精度类型值

注释

待办订单止损数值,目标数值和开仓值的计算值一定根据精确度规范吗,该值可以通过 Digits()获得。

请注意,当使用Print()函数输出到日志时,标准数字可能包括比你想象的更多的小数位。例如:

   double a=76.671;             // 三个小数位的标准数字

   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));

/*

   Result:

   pi= 3.1415926535897931

   NormalizeDouble(pi,3)= 3.1419999999999999

   NormalizeDouble(pi,8)= 3.1415926499999998

   NormalizeDouble(pi,0)= 3.0000000000000000

*/

另见so

DoubleToString真实型(双精度,浮点)类型减少