Показать сообщение отдельно
  #14  
Старый 14.08.2011, 17:11
Аватар для SpectraL
SpectraL SpectraL вне форума
Начинающий
 
Регистрация: 19.05.2011
Адрес: Санкт-Петербург
Сообщения: 112
Версия Delphi: 10.1 Berlin
Репутация: 10
По умолчанию

Результатом операции "a-b" является тип extended. При преобразовании типа extended в тип double ("c := a - b;") получаются такие неверные результаты. Поэтому лучшим решением нахожу сделать переменные "a, b и c" типом extended:
Цитата:
a, b, c: extended;
Однако, несмотря на то что
Цитата:
showmessage(c);
выводит правильный результат (0.04), условие
Цитата:
if c = 0.04 then showmessage('yes');
не выполняется. В таком случае помогает использование
Цитата:
c := strtofloat(floattostr(a - b));
Почему при showmessage, выводящем 0.04, не выполняется условие "if с = 0.04"? Нет ли более эффективного способа "обновить" значение 0.04 (strtofloat(floattostr(a - b)))?
Ответить с цитированием