Это распространенная проблема с представлением чисел с плавающей запятой в компьютерных системах.
Многие числа, которые являются «круглыми» в десятичной дроби, становятся повторяющимися дробями в двоичном представлении, используемом компьютером, и они должны быть усечены в некоторой точке для очень небольшой потери точности. Если два числа с плавающей точкой получаются по-разному, вы должны сравнить их с небольшим отклонением, например abs(a-b) < EPSILON
, где EPSILON
- соответствующая константа, подобная 1e-12.