@PyotR3213ty54

Почему Python считает приближенное float значения?

Возможно вопрос банальный, но я новичок в программировании на Python.
Почему когда floatовское значение (с двумя знаками после запятой) я пытаюсь умножить на 100, то получаю число приблизительное? Пример:
a = 2.26
print(a * 100) # => 225.99999999999997


А если преобразовать в int, то он отбросит дробную часть и получится трёхзначное число (225) на единицу меньше предполагаемого:
a = 2.26
print(int(a * 100)) # => 225

Почему питон пишет всё это приближенное значение 225.99999999999997? Как можно гарантированно это обойти, а не просто увеличивать число 225 на единицу? P.S. встречаются числа, которые нормально умножаются на 100, тогда + 1 точно испортит значение:
b = 1.76
print(b * 100) # => 176.0
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
@y7o4ka
Is floating point math broken? на StackOverflow
Для решения можно использовать round()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AVKor
Почему Python считает приближенное float значения?

Потому что так устроено (и это не специфика Python). Ознакомьтесь с основами CS.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы