Re[6]: Как правильно сравнивать числа типа double?
От: andy1618 Россия  
Дата: 03.10.10 16:38
Оценка: +2
Здравствуйте, Vain, Вы писали:

V>>>Только осторожней с той формулой, она работает только для чисел одинаковым знаком.

A>>Речь про эту формулу?
A>>
A>>if (fabs(a-b) <= DBL_EPSILON * fmax(fabs(a),fabs(b)))
A>>{
A>>  . . .Числа равны с относительной точностью DBL_EPSILON
A>>}
A>>

A>>ИМХО тут всё чётко.
V>Ну подставте, к примеру, 1.e-10 и -1.e-10, получится:
V>
V>if (2.e-10 <= 2.e-16 * 1.e-10)
V>

V>Очевидно что false.

Всё правильно — и должно быть false. Это как сравнивать +1 и -1 — было бы странно их уравнять
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.