Проблема с точностью double

 

Всем привет.

Писал dll к своему советнику и наткнулся на очень неприятный момент, делающий бессмысленной всю дальнейшую работу.

Mql4 самостоятельно округляет любые даблы до точности 4 знаков после запятой.

Ниже код и скрин.

Это именно проблема mql, не c++ и даже вроде не функций вывода вроде Comment () и Print ().

Сначала я думал это функция ArrayCopyRates () чудит и значения double криво в dll передаются, но mql так вообще любые даблы округляет.

Потому что тогда хотя бы в скобках значение было верное (до отправки в длл) и только после бы портилось

Что это за хрень, как бороться?

Скрин

/**
 * Провести тестирование
 */
void test ()
{   
    double value = 1.12345;

    Comment (
        "SEND DOUBLE (", value, "): ", sendDouble (value)
    );
}
 
 Comment (        "SEND DOUBLE (",DoubleToStr(value,precision), "): ", sendDouble (value)    );
 
evillive:

Ах, спасибо.
Buhach:

и даже вроде не функций вывода вроде Comment () и Print ().

Я допускал такой вариант, что это на уровне вывода значения округляются, но почему-то решил, что это не так.
Причина обращения: