Олег Кулабухов отвечает на вопрос:
У меня два числа с плавающей запятой неправильно сравниваются!
Задаю if d1=d2 ..., или if d1<>d2, а результат иногда неверный. В чем
дело? Это баг Дельфи?
Нет. Просто в отличие от целочисленных IEEE числа с плавающей запятой
являются приблизительными значениями и вы не должны использовать = или <>
для сравнивания двух чисел такого типа. Вместо этого вычтите из одного числа
другое и сравните разницу с очень малой величиной.
Например.
|
|
if abs(d1-d2) <
0.00001 then ShowMessage('D1
и D2 равны'); | |