双精度浮点数的规范化
MQL5 API 提供了用于将浮点数字舍入为指定精度(小数部分有效数位数)的函数。
double NormalizeDouble(double number, int digits)
交易算法中需要舍入以设置 订单中的交易量和价格。根据标准规则执行舍入:如果下一位(舍弃的)数字大于或等于 5,则最后可见数字增加 1。
digits 参数的有效值:0 至 8。
该函数的使用示例在 ConversionNormal.mq5 文件中提供。
void OnStart()
|
由于任何实数均具有有限的 内部表示 精度,因此即使规范化后,数字也可能是近似显示:
...
|
这是正常情况,无法避免。要获得更紧凑的格式,可使用 DoubleToString、 StringFormat 函数或以中间方式强制转换为 (float)。
要将一个数字舍入为最近整数,使用 MathRound、MathCeil、MathFloor 函数(参见章节 舍入函数)。