У меня проблема с вычислением простого арифметического уравнения с использованием переменных двойной точности.Неверный двойной расчет точности Delphi
У меня есть компонент, который имеет свойство Value, которое двойная точность, и я устанавливаю это свойство 100.
Тогда я делаю простое вычитание, чтобы проверить, если это значение действительно 100:
var
check: double;
begin
check:= 100 - MyComponent.Value
showmessage(floattostr(check));
end;
проблема заключается в том, что я не получаю ноль, я получаю -1.4210854715202E-14, которая является проблемой, потому что программа проверяет, является ли этот результат точно равен нулю
любая идея, как решить эту проблему?
Что каждый программист должен знать о арифметики с плавающей точкой HTTP: // Http: //floating-point-gui.de/ И вы видели Http: //stackoverflow.com/questions/6106119/how-to-compare-double-in-delphi и, например, http://docwiki.embarcadero.com/Libraries/XE4/en/System.Math.IsZero –