在MT4中通过NormalizeDouble对数字进行四舍五入 - 页 12 1...567891011121314151617 新评论 Алексей Тарабанов 2016.02.25 22:14 #111 lilita bogachkova: 那么你应该写信给服务台说他们发明了这样一个额外的函数MathCeil():) 这只是不同,它并没有给我带来多大困扰 :) Lilita Bogachkova 2016.02.25 22:16 #112 Алексей Тарабанов: int A = double B + 0.5 他说的没错。"首先,在小数上加0.5,然后切断 小数部分,将结果四舍五入为整数。", 但MQ给了我们MathCeil() 以省去麻烦,MathCeil()返回次高 整数值,而 不是四舍五入void OnStart() { ushort Characters_delete=14; for(int i=0;i<=Characters_delete;i++) { double v1=i+0.999999999999999; int v2=v1+0.5; Print("v1 = ",i," = ",DoubleToString(v2,2)); } } Dmitry Fedoseev 2016.02.25 22:21 #113 Vasyl Nosal: 五,然后。 什么是5?对这样的数字进行归一化,会把所有的9变成0,所以归一化后再抛弃会得到错误的结果。 Алексей Тарабанов 2016.02.25 22:25 #114 lilita bogachkova: 他说的没错。"首先,将0.5加到小数上,然后将 小数部分从结果中切掉,并将结果四舍五入为整数。", 但MQ给了我们MathCeil(),所以我们不必麻烦。 谢谢,Sunny,但MathCeil只对双倍数起作用:包括输入和输出 :) Lilita Bogachkova 2016.02.25 22:27 #115 Алексей Тарабанов: 谢谢,Sunny,但MathCeil只对双倍数起作用:包括输入和输出 :)解决了:int A = (int)MathCeil(double B)。 Алексей Тарабанов 2016.02.25 22:31 #116 lilita bogachkova: 被解决:int A = (int)MathCeil(double B)。 对不起:int A =(int)MathCeil(double B+0.5) Lilita Bogachkova 2016.02.25 22:34 #117 Алексей Тарабанов: 对不起:int A =(int)MathCeil(double B+0.5) 不是一个:解决了:int A =(int)MathCeil(double B)。 Алексей Тарабанов 2016.02.25 22:36 #118 lilita bogachkova: 不是一个:解决了:int A =(int)MathCeil(double B)。 尝试:int A =MathCeil(2.6) Lilita Bogachkova 2016.02.25 22:39 #119 Алексей Тарабанов: 尝试:int A = MathCeil(2.4)int A =MathCeil(2.4)=3int A = MathCeil(2.4+0.5) =3但int A = MathCeil(2.6+0.5) =4int A = MathCeil(2.6) =3 Алексей Тарабанов 2016.02.25 22:43 #120 lilita bogachkova:int A = MathCeil(2.4)=3int A = MathCeil(2.4+0.5) =3但int A = MathCeil(2.6+0.5) =4 恶魔迷惑了...当然,是2.6。这些数字很奇怪... 1...567891011121314151617 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
那么你应该写信给服务台说他们发明了这样一个额外的函数MathCeil():)
int A = double B + 0.5
五,然后。
他说的没错。"首先,将0.5加到小数上,然后将 小数部分从结果中切掉,并将结果四舍五入为整数。", 但MQ给了我们MathCeil(),所以我们不必麻烦。
谢谢,Sunny,但MathCeil只对双倍数起作用:包括输入和输出 :)
被解决:int A = (int)MathCeil(double B)。
对不起:int A =(int)MathCeil(double B+0.5)
不是一个:解决了:int A =(int)MathCeil(double B)。
尝试:int A = MathCeil(2.4)
int A =MathCeil(2.4)=3
int A = MathCeil(2.4+0.5) =3
但
int A = MathCeil(2.6+0.5) =4
int A = MathCeil(2.6) =3
int A = MathCeil(2.4)=3
int A = MathCeil(2.4+0.5) =3
但
int A = MathCeil(2.6+0.5) =4