Здравствуйте, 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 — было бы странно их уравнять