NormalizeDouble
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
*/