Download MetaTrader 5

Floating point type bug in 64bit version

To add comments, please log in or register
We have launched Spanish and Portuguese versions of the website. Try them!
Mariusz Woloszyn
76
Mariusz Woloszyn 2010.10.11 20:34 

Hi!

I have experienced strange problem in 64bit version of MT5 when the function is imported from the external library.

I have created a sample function in C:

double __stdcall test_double(double d)
{

    return (d*1.22);

}


and declared it in MQL:

double test_double(double d);

When invoked in MQL like that:

Print ("test_double:"+test_double(100));


I got:

2010.10.11 18:12:42    double_bug (EURUSD,H1)    test_double:-1.#IND


The very same code works like a charm when recompiled for an run under 32 bit MT5 platform.

It's very strange as double and float data types are standard across all platforms and do not depend on the architecture.

Later I redefined the routine to:

double __stdcall test_double(double d)
{

    return (1.22);

}


And got the very same result.

Looks like a terminal bug.

Alexey Da
Moderator
6604
Alexey Da 2010.10.12 10:36  

Thanks for message.

We'll check it.

Ilyas
1206
Ilyas 2010.10.12 11:08  
Thank you for your message. Bug fixed. Please wait for updates.

Mariusz Woloszyn
76
Mariusz Woloszyn 2010.10.12 11:27  

Thank you for your quick reaction :)

Any hint when I can expect new build?

Mariusz Woloszyn
76
Mariusz Woloszyn 2010.10.18 12:21  

Hi!

I just got the new build (344 of Ocrober 15th) yet the problem still persists.


Ilyas
1206
Ilyas 2010.10.18 12:34  
To solve this problem, your mq5 file must be recompiled

Mariusz Woloszyn
76
Mariusz Woloszyn 2010.10.18 13:50  

Confirmed, it works once recompiled.

Thank you :)

To add comments, please log in or register