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

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

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

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

from decimal import Decimal
a = Decimal′1000′'1000'1000 b = Decimal′1.005′'1.005'1.005 c = a * b
printccc

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

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