Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   

Сравнение чисел с плавающей точкой

Автор: Олег Кулабухов

У меня два числа с плавающей запятой неправильно сравниваются! Задаю if d1=d2 ..., или if d1<>d2, а результат иногда неверный. В чем дело? Это баг Дельфи?

Нет. Просто в отличие от целочисленных IEEE числа с плавающей запятой являются приблизительными значениями и вы не должны использовать = или <> для сравнивания двух чисел такого типа. Вместо этого вычтите из одного числа другое и сравните разницу с очень малой величиной.

Например.


if abs(d1-d2) < 0.00001 then
  ShowMessage('D1 и D2 равны');

           


Нужен сайт? - Сделаем: создание сайтов. . Все про строительство: строительные вышки туры. Тратите много денег на дом? . Ленточные пилы от 4610 руб - пилы ленточные по металлу рязань. . Элитная мебель из ротанга. Плетеная мебель из ротанга от компании OLIMAR - Где и как купить. .


Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011