Junior — Middle
Hoe kun je de gelijkheid van twee drijvende-komma-getallen controleren?
sobes.tech AI
Antwoord van AI
Из-за особенностей представления чисел с плавающей точкой в памяти прямое сравнение с помощью оператора == может быть ненадежным. Для проверки равенства двух чисел с плавающей точкой обычно используют сравнение с некоторой допустимой погрешностью (эпсилон). Например, в C++ можно сделать так:
#include <cmath>
bool areAlmostEqual(double a, double b, double epsilon = 1e-9) {
return std::fabs(a - b) < epsilon;
}
Здесь epsilon — это максимально допустимая разница между числами, при которой они считаются равными.