Пожалуйста, разъясните порядок округления дробных чисел

Решаю типовую задачу: необходимо из введенного числа в формате float экстрактировать дробную часть. Написал код эмпирическим путём:

x = float(input())
y = round((x - int(x)), 2)
print(y)

Например вводим число 17.9. Отбрасываем дробную часть через int() и находим разницу с первоначально введенным значением Но получаем 0.8999999999999986. Функция round с округлением до 2 знаков в данном случае работает Но если просто взять 0,89 она ничего не округлит Возможно загвоздка в форматах?(int/float) Пожалуйста, объясните почему код работает!?)))


Ответы (0 шт):