Непосредственный разбор десятичного числа в целое или число с плавающей запятой, которое вы хотите.
int(decimal.Decimal('22679.6185') / decimal.Decimal('28.349523125') / 16)
или
float(decimal.Decimal('22679.6185') / decimal.Decimal('28.349523125') / 16)
22679.6185 / 28.349523125 в точности равно 800. И показывает десятичное число ("8E2") без каких-либо ошибок.
точность зависит от объекта контекста. проверьте это с помощью «decimal.getcontext ()». Это выглядит следующим образом:
Context(prec=28, rounding=ROUND_HALF_EVEN, ....)
«Пред» - это то, что вы хотите. Попробуйте это.
decimal.Decimal("42.5") / decimal.Decimal("37.1")
В результате получается 28 значащих цифр.