在MT4中通过NormalizeDouble对数字进行四舍五入

 

你好。你能告诉我问题是什么吗?

为什么NormalizeDouble(0.055,2) 函数会将数字"0.055 "四舍五入 为 "0.06"?

这不是一个分数四舍五入的功能。

 

https://docs.mql4.com/ru/convert/normalizedouble

Округление числа с плавающей точкой до указанной точности.

NormalizeDouble - Документация на MQL4
  • docs.mql4.com
NormalizeDouble - Документация на MQL4
 

为了继续这个主题。有一个脚本

#property strict

void OnStart()
  {
   double v1 = NormalizeDouble(0.055,2);
   double v2 = NormalizeDouble(0.0549,2);

   Print("v1 = ",DoubleToString(v1),", v2 = ",DoubleToString(v2));
  }

结果:v1 = 0.06000000,v2 = 0.05000000,而这两种情况下都应该是0.06000000。

 
Maxim Khrolenko:

为了继续这个主题。有一个脚本

结果:v1 = 0.06000000,v2 = 0.05000000,而这两种情况下都应该是0.06000000。

四舍五入 - 维基百科

 
Roman Starinskij:

你好。你能告诉我问题是什么吗?

为什么NormalizeDouble(0.055,2) 函数会将数字"0.055 "四舍五入 为 "0.06"?

这不是一个分数四舍五入的功能。

你认为结果应该是什么?
 
Maxim Khrolenko:

为了继续这个主题。有一个脚本

结果:v1 = 0.06000000,v2 = 0.05000000,而这两种情况下都应该是0.06000000。

为什么不呢?
 
Maxim Khrolenko:

为了继续这个主题。有一个脚本

结果:v1 = 0.06000000,v2 = 0.05000000,而这两种情况下都应该是0.06000000。

嗯,Vshchupeeeee....

应该是v1=v2=0.06。

我甚至从来没有检查过它...真的这么不对吗?

你有MT5或MT4吗?

 
new-rena:

嗯,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇,哇。

应该是v1=v2=0.06。

我甚至没有检查过...真的有那么乱吗?

它究竟为什么要这样做?
 
Dmitry Fedoseev:
你为什么要这样做?

我在学校得了D,但我记得四舍五入是正确的......。

如果最右边的数字大于或等于5,那么左边的下一个数字就是+1。以此类推,从右到左转变。

 
new-rena:
我在学校的成绩是F,但我记得这个...

有趣的是,这是一所什么样的学校...告诉我你在想什么。因为我不知道它怎么会如此陈腐。

 
Maxim Khrolenko:

为了继续这个主题。有一个脚本

结果:v1 = 0.06000000,v2 = 0.05000000,而这两种情况下都应该是0.06000000。

而且你已经将小数点后的3个字符规范化了