MT4中>,<,>=,<=这四个算符存在BUG,并不能很好的执行,比如x>0.1,执行时,有时候在x=0.1时便会执行后面的语句,而有时候x>=0.1会执行的语句,在x=0.1时不会执行。
你的“有时候”指的是什么情况,能不能说的清楚些。
干吗不乘10取整后再做整数比较呢?
if (MathAbs(157.06-156.96)==0.1)
{ Print("偶数确实是对的");}
if (MathAbs(157.05-156.95)==0.1)
{ Print("奇数是错的");}
这段程序运行的结果是没有任何输出。
if (MathAbs(157.06-156.96)>=0.1)
{ Print("偶数确实是对的");}
if (MathAbs(157.05-156.95)>=0.1)
{ Print("奇数是错的");}
和
if (MathAbs(157.06-156.96)>0.1)
{ Print("偶数确实是对的");}
if (MathAbs(157.05-156.95)>0.1)
{ Print("奇数是错的");}
这两段程序运行的结果是“奇数是错的”
if (MathAbs(157.06-156.96)<=0.1)
{ Print("偶数确实是对的");}
if (MathAbs(157.05-156.95)<=0.1)
{ Print("奇数是错的");}
和
if (MathAbs(157.06-156.96)<0.1)
{ Print("偶数确实是对的");}
if (MathAbs(157.05-156.95)<0.1)
{ Print("奇数是错的");}
这两段程序运行的结果是“偶数确实是对的”
就因为这个小小的问题,我亏了好多钱,今天才找到问题所在,郁闷了,提醒各位同仁,以后遇到同样问题要注意了,换一个方法。
弱弱的问,是不是浮点数精确度问题啊?还是?我也是菜鸟,请达人指教。
另外这个不是BUG,只是你没有学多程序设计你不知道这些数据类型的具体情况.不能乱下定论的.