![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
0,5=0,5 ;округление
AlexA © (2002-05-22 16:18:00)Такая информация в отладчике
TmpN: 14710.5
Frac(TmpN): 0.5
Frac(TmpN)>=0.5: False
Frac(TmpN)=0.5: False
В результате условие IF выполняется неверно.
Где ошибка
Что делать
McSimm (2002-05-22 16:26:00) [1]Сравнение на равенство чисел с плавающей точкой это ошибка программирования.
Обычно сравнивают в пределах погрешности, но можно привести к сравнению целых. Например так:
if Trunc(10*Frac(TmpN)) = 5 then
Внук (2002-05-22 16:22:00) [2]Было у меня такое, когда еще на C++ писал. Попробуйте FloatToStr(Frac(TmpN))="0.5"