тут умножение по идее сразу должно выдавать 216750.765, но "есть нюансы"
округлять только конечный результат
>>> from decimal import Decimal >>> x1 = Decimal('273.9') >>> x2 = Decimal('791.35') >>> x1 * x2 Decimal('216750.765') >>> y = x1 * x2 >>> y.quantize(Decimal('0.00')) Decimal('216750.76') >>> from decimal import ROUND_HALF_UP >>> y.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP) Decimal('216750.77')
третий случай, некорректный :), меньше половины в третьем знаке. и если хочешь так, то округлять нужно до третьего знака, а не до десятого в последней формуле
как вариант import numpy as np print(np.float64(100) - np.float64(123.123)) print(round(np.float64(216750.765) - np.float64(273.9),2))
Обсуждают сегодня