Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сравнение вещественных чисел [D7, XP]


Zhekson ©   (2009-03-27 09:53:00) 

как правильно сравнивать вещественные числа???


FS   (2009-03-27 11:31:00) [1]

используй


function CompareValue(const A, B: Extended; Epsilon: Extended): TValueRelationship;


Вот пример:

var
 Value: Real;
begin
 Value := 0.4;

 if Value = 0.4 then
   ShowMessage('=')
 else
   ShowMessage('<>'); // Здесь будет неверный результат

 if CompareValue(Value, StrToFloat('0,4')) = 0 then
   ShowMessage('=')
 else
   ShowMessage('<>'); // Верный результат


Amoeba   (2009-03-27 10:47:00) [2]

Конкретно вот эта статья:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
Читать до полного просветления, дабы в дальнейшем вопросов относительно вещественных чисел не возникало.


Zhekson   (2009-03-27 10:46:00) [3]

используется точность до двух знаков после запятой. как насчет варианта: умножения на 100, присвоение целочисленной переменной целой части вещественного числа и сравнение с целым числом??? Если этот вариант имеет право на жизнь, то какой ф-цией можно присвоить целочисленной переменной целую часть вещественного числа???


{RASkov}   (2009-03-27 10:29:00) [4]

> [0] Zhekson   (27.03.09 09:53)

> или < или <> или = или >= или <=
этот вопрос щекотливый...
Потому как напрямую сравнивать такие числа, может оказаться чревато...
Есть статья на Королевстве "про это"...


Наверх

Титульная страница Поиск, карта сайта Написать письмо