MQL5的奇怪问题,欢迎围观

 

MQL5的奇怪问题,欢迎不明真相的群众围观

https://www.mql5.com/en/forum/465/

一个整数可能与数值相同的另一个整数导致不同结果。这可不是浮点精度问题。

你可能必须保证自己在所有必要的地方进行强制类型转换,否则结果无法预料。

 

结论是,我搞错了,应该进行强制类型转换。
不过在测试过程中发现了新问题。
只要10行简单代码就能让 MetaEditor (5.0.0.244) 在编译时崩溃。

void TestMath6() //long lParam
{
   long   lLocal=555;
   long   l_l_2;
   l_l_2 = (long)lLocal; //+lParam (long)
}
int OnInit()
  {
   return(0);
  }
https://www.mql5.com/en/forum/474
 

这个问题在MQL4里没有,因为MQL4根本就不支持这样的强制类型转换,MetaEditor (4.0.0.225) 会直接报告编译错误。

从版本号上也能看出来,MQL5比MQL4复杂多了。

原因: