Сравнение чисел с плавающей точкойDelphi , Синтаксис , Типы и ПеременныеСравнение чисел с плавающей точкойАвтор: Олег Кулабухов У меня два числа с плавающей запятой неправильно сравниваются! Задаю if d1=d2 ..., или if d1<>d2, а результат иногда неверный. В чем дело? Это баг Дельфи? Нет. Просто в отличие от целочисленных IEEE числа с плавающей запятой являются приблизительными значениями и вы не должны использовать = или <> для сравнивания двух чисел такого типа. Вместо этого вычтите из одного числа другое и сравните разницу с очень малой величиной. Например.
Here's the translation into Russian: Классическая проблема!
Вы правы, сравнение чисел с плавающей запятой с помощью операторов
Код проверяет, если абсолютная разница между
Код проверяет, если абсолютная разница между Статья сравнивает чисел с плавающей точкой, предлагая использовать не оператор сравнения, а вычитание и проверку разницы с малой величиной для корректного сравнения таких значений. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Типы и Переменные ::
|
|||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |