NormalizeDouble
NormalizeDouble
将浮点数四舍五入到指定的精度。
double NormalizeDouble(
double value, // normalized number
int digits // number of digits after decimal point
);参数
- value
[in] 具有浮点数的值。
- digits
[in] 精度格式,小数点后的位数(0-8)。
返回值
具有预设精度的double类型的值。
注意
StopLoss、TakeProfit的计算值以及待定订单的开价值必须用该精度进行归一化,其值可以通过Digits()获得。
请注意,当使用Print()函数输出到日志时,归一化的数字可能包含比预期更多的小数位。例如:
double a=76.671; // A normalized number with three decimal places
Print("Print(76.671)=",a); // Output as is
Print("DoubleToString(a,8)=",DoubleToString(a,8)); // Output with a preset accuracy
在终端中你将得到以下结果:
| 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
*/另请参阅
最后更新于