максимальная точность double

 

столкнулся с проблемой - сверка двух матриц ( эталонной и вычесленной ) - дает отрицательный результат, при том что распечатанные они выглядят идентично.

взял разность, распечатал - получилась почти нулевая матрица ( где-то нули со знаком - ).

понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)

так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.

 
parad:
 

так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.

Погуглите по ключевым словам "machine epsilon".
 
parad:

понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)

При печати используйте:

DoubleToStr(value, 16);

 А для сравнения двух вещественных с максимальной точностью в MQL4/5 есть константа DBL_EPSILON.

 
anonymous:
Погуглите по ключевым словам "machine epsilon".


спасибо.
 
parad:

столкнулся с проблемой - сверка двух матриц ( эталонной и вычесленной ) - дает отрицательный результат, при том что распечатанные они выглядят идентично.

взял разность, распечатал - получилась почти нулевая матрица ( где-то нули со знаком - ).

понятно что дело в округлении при печати и лучше проверять на равенство методом ( a - b ) < 10^(-n)

так вот какую n максимальную следует запользовать? эмпирический тык не предлагать.


double GetEps()
{
    double eps = 1.0;//
    while((1+eps)>1) eps*=0.1;
    return(eps*10);
}
 
VladislavVG:



У кода недостаточная точность )))

Правильный ответ не

0.0000000000000010, а

0.0000000000000002.

Это и есть значение DBL_EPSILON.

 
Scriptong:


У кода недостаточная точность )))

Правильный ответ не

0.0000000000000010, а

0.0000000000000002.

Это и есть значение DBL_EPSILON.


нужна большая точность, используйте eps/=2; - получите искомое. Принцип тот же, а более точный ответ 2,2204460492503131e-016 - это, кстати, и в документации написано ))))))).
 
VladislavVG:

ответ 2,2204460492503131e-016 - это, кстати, и в документации написано ))))))).
Ну вот и я о том же - "все украдено до нас" (с)
Причина обращения: