Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

Глупый вопрос: сравнение double   Найти похожие ветки 

 
KSergey ©   (2008-11-17 06:18) [0]

Как сравнить 2 double? На равенство и неравенство?
Учитывая, что хочется универсального метода для неизвестного порядка сравниваемых величин, т.е. сравнение вроде

abs(d1 - d2) < eps

упирается в выбор eps, с чем легко пролететь как показывает практика. Кроме всего прочего так же крайне интересуют скоростные характеристики.

Хотелось бы выведать кто чего знает по этому вопросу.


 
Дуб ©   (2008-11-17 06:36) [1]

Кнут. 2 том. 4 глава.


 
MBo ©   (2008-11-17 06:51) [2]

Math.SameValue


 
Юрий Зотов ©   (2008-11-17 08:13) [3]

> KSergey ©   (17.11.08 06:18)  

> упирается в выбор eps

Погуглите термины "машинный ноль" и "машинное эпсилон". Сильно поможет в автоматическом выборе eps.


 
TUser ©   (2008-11-17 08:20) [4]

А в чем проблема с выбором эпс? Несколько раз так писал, для конкретной задачи всегда было ясно, какое число есть очень маленькое.


 
Рамиль ©   (2008-11-17 08:57) [5]

Сравнение вещественных числе обычно применяется в физических задачах. А там eps определяется постановкой (ну зачем, например, космический корабль сажать с точностью до миллиметра, или рассчитывать прочность до грамм для нескольких тонн). Так что спустись с небес теории на грешную землю практики и не будет возникать таких вопросов;)


 
Дуб ©   (2008-11-17 09:07) [6]

> Рамиль ©   (17.11.08 08:57) [5]

Это как бы хорошо, но вот при вычислении корня из отрицательного числа возникает неприятное. И что с того, что число получившееся лишь физически незначительно отличалось от 0? Например.


 
Рамиль ©   (2008-11-17 09:30) [7]


> Это как бы хорошо, но вот при вычислении корня из отрицательного
> числа возникает неприятное.

В смысле? Вообще то, если попробовать вычислить корень из отрицательного, получим runtime error.


 
Дуб ©   (2008-11-17 09:34) [8]

> Рамиль ©   (17.11.08 09:30) [7]

Вот именно. Получим. То есть получим существенно иное поведение при почти равных числах.

Ну и при дрейфе можем в итоге насчитать разное, что мимио Луны сядем. :) Воспрос не праздный как раз для практики ведь.


 
Рамиль ©   (2008-11-17 09:53) [9]


> Дуб ©   (17.11.08 09:34) [8]

А, понял. Но тут тоже надо индивидуально подходить. Проверять надо:) И тут все равно eps согласно задаче (или, для ленивых, возвести в квадрат)


 
Альф   (2008-11-17 10:11) [10]

При физических расчетах обычно eps ~= погрешности измерений...


 
Jeer ©   (2008-11-17 10:12) [11]

Стандартно опеределенные esp:

const
 FuzzFactor = 1000;
 ExtendedResolution = 1E-19 * FuzzFactor;
 DoubleResolution   = 1E-15 * FuzzFactor;
 SingleResolution   = 1E-7 * FuzzFactor;


 
MsGuns ©   (2008-11-17 11:38) [12]

Без приложения к конкретной предметной области сабж и впрям глуп


 
KSergey ©   (2008-11-17 12:20) [13]

> Jeer ©   (17.11.08 10:12) [11]
> Стандартно опеределенные esp:

Не не, только не стандартные, проходили.

> MsGuns ©   (17.11.08 11:38) [12]
> Без приложения к конкретной предметной области сабж и впрям глуп

хотелось совершенно универсального решения... Вдруг оно есть, а я о том не знаю? :)

Спасибо ответившим, изучаю.


 
KilkennyCat ©   (2008-11-17 12:34) [14]


> Ну и при дрейфе можем в итоге насчитать разное, что мимио
> Луны сядем. :)


Зачем Луна? Пункты приема металлолома на Марсе.


 
Дуб ©   (2008-11-17 12:44) [15]


> KilkennyCat ©   (17.11.08 12:34) [14]

Ну, мы то свой металлолом пека только на Луне продали.


 
Anatoly Podgoretsky ©   (2008-11-17 13:17) [16]

> KilkennyCat  (17.11.2008 12:34:14)  [14]

Только в Фобос не попади.


 
KSergey ©   (2008-11-18 14:52) [17]

Cтатья про сравнение даблов. И подход там интересный описан (во второй примерно половине, где к int их кастят):
http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm



Страницы: 1 вся ветка

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
15-1226952249
NoDt
2008-11-17 23:04
2009.01.11
Поясните пожалуста Алгоритм Дейкстры


15-1226564342
Нов_и_чок
2008-11-13 11:19
2009.01.11
Справочник Win32 для XP


15-1226514556
@!!ex
2008-11-12 21:29
2009.01.11
Вопрос: почему удалили тему Раймонда?


2-1227985085
Надуев Алексей
2008-11-29 21:58
2009.01.11
Как можно осуществить в Delphi запуск программ


2-1227536047
demon
2008-11-24 17:14
2009.01.11
Обрезание расширений