Используй
C++ (Qt)
bool qFuzzyCompare(float p1, float p2)
и не парся)
А давайте все-таки попарымся
Что же делает то fuzzy (чудо великих "троллей")
C++ (Qt)
Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(float p1, float p2)
{
return (qAbs(p1 - p2) * 100000.f <= qMin(qAbs(p1), qAbs(p2)));
}
Возьмем 2 числа, напр 100.0f и 100.001f (100 + 1.0e-3f). Получаем
1.0e-3f * 1.0e+5f <= 100.0f
100.0f <= 100.0f // return true
Во как, здесь не ловит даже третий знак. То наверное сделали для работников UI где точность до пыкселя
Имеется текстовый файл, в который записаны некоторые вещественные числа с точностью до 6 знака. Хотел бы узнать, правомерно ли их сравнивать через operator==.
Кого "их"? Считали из файла 2 числа, можем ли их сравнивать? Рез-том будет только "точное" сравнение. Т.е. равные числа останутся равными после записи в файл и чтения из него. Однако числа что были неравными могут оказаться равными, и наоборот, разница между ними может увеличиться. Конечно Вы все это знали, так что, дружок, формулируйте вопрос яснее