Почему python криво умножает и как это исправить? a=1000
b=1.005
c=b*a
print(c)
на выходе получаю это
1004.9999999999999
Почему питон так криво умножает и как можно это исправить не применяя округление (Round)?

21 Авг 2019 в 06:03
144 +1
0
Ответы
1

Проблема заключается в том, что внутреннее представление чисел в формате с плавающей запятой (float) в Python не всегда точно соответствует десятичному формату. Это приводит к маленьким ошибкам округления при выполнении арифметических операций.

Чтобы избежать этой проблемы, можно использовать модуль Decimal из стандартной библиотеки Python. Пример исправления кода с помощью модуля Decimal:

from decimal import Decimal
a = Decimal('1000')
b = Decimal('1.005')
c = a * b
print(c)

Этот код даст точный результат без ошибок округления.

20 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 924 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир