так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.
понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)
При печати используйте:
DoubleToStr(value, 16);
А для сравнения двух вещественных с максимальной точностью в MQL4/5 есть константа DBL_EPSILON.
Погуглите по ключевым словам "machine epsilon".
спасибо.
столкнулся с проблемой - сверка двух матриц ( эталонной и вычесленной ) - дает отрицательный результат, при том что распечатанные они выглядят идентично.
взял разность, распечатал - получилась почти нулевая матрица ( где-то нули со знаком - ).
понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)
так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.
double GetEps() { double eps = 1.0;// while((1+eps)>1) eps*=0.1; return(eps*10); }
У кода недостаточная точность )))
Правильный ответ не
0.0000000000000010, а
0.0000000000000002.
Это и есть значение DBL_EPSILON.
У кода недостаточная точность )))
Правильный ответ не
0.0000000000000010, а
0.0000000000000002.
Это и есть значение DBL_EPSILON.
нужна большая точность, используйте eps/=2; - получите искомое. Принцип тот же, а более точный ответ 2,2204460492503131e-016 - это, кстати, и в документации написано ))))))).
ответ 2,2204460492503131e-016 - это, кстати, и в документации написано ))))))).

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
столкнулся с проблемой - сверка двух матриц ( эталонной и вычесленной ) - дает отрицательный результат, при том что распечатанные они выглядят идентично.
взял разность, распечатал - получилась почти нулевая матрица ( где-то нули со знаком - ).
понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)
так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.