То, что сказал Джеффри, абсолютно правильно, особенно в этом случае. Тем не менее, вы можете найти аналогичные результаты из-за следующей проблемы: часто числа с плавающей запятой представляются внутренне, используя базу 2. Это означает, что ваши числа записываются как мантисса * 2 ^ (экспонента). Это эффективно берет ваш номер и конвертирует его в базу 2, что не всегда идеально. Скажем, вы хотите представить 0,2 внутри. Бинарное представление 0.2 не является конечным, на самом деле это 0.00110011 ... (точно так же, как 1/3 - это 0.3333 ... в базе 10). Поскольку для мантиссы вы храните только конечное число цифр, число будет усечено при сохранении, а затем, когда оно будет преобразовано обратно в десятичную для печати, оно будет отображаться как 0,19999 ... вместо 0,2. Например, я часто замечал это в python. Вы можете просто набрать 0.2 в интерактивной оболочке, и она будет выплевывать что-то близкое к 0.2, но немного меньше или больше.