Junior — Middle
Comment peut-on vérifier l'égalité de deux nombres à virgule flottante?
sobes.tech IA
Réponse de l'IA
Из-за особенностей представления чисел с плавающей точкой в памяти прямое сравнение с помощью оператора == может быть ненадежным. Для проверки равенства двух чисел с плавающей точкой обычно используют сравнение с некоторой допустимой погрешностью (эпсилон). Например, в C++ можно сделать так:
#include <cmath>
bool areAlmostEqual(double a, double b, double epsilon = 1e-9) {
return std::fabs(a - b) < epsilon;
}
Здесь epsilon — это максимально допустимая разница между числами, при которой они считаются равными.