Да, арифметика с плавающей запятой иногда делает это.Чтобы понять почему, полезно понять, что точно так же, как не все числа могут быть точно представлены в базе 10, так и не все числа могут быть точно представлены в базе 2.
Например, "1/3" может бытьзаписано в базе 10 как 0,33333 или 0,33334.Ни один из них не является действительно «правильным»;они просто лучшее, что мы можем сделать.«ДВОЙНОЙ» в базе 10 может быть 0,3333333333 или 0,3333333334, что является двойной цифрой, но все же не является «правильным».
Наилучшие варианты: либо использовать значение DECIMAL , либо используйте значение INT (и умножьте ваши фактические значения, скажем, на 10000 или 100000, чтобы получить десятичные цифры, которые вас интересуют, в это целое число).