Sobes.tech
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 — это максимально допустимая разница между числами, при которой они считаются равными.