8.833333333339(или 8.833333333333334результат 106.00/12) правильно округленный до двух знаков после запятой 8.83. Математически это звучит так, будто вам нужна функция потолка . Тот, что находится в mathмодуле Python, называется ceil:
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100)
Соответственно, функции пола и потолка обычно сопоставляют действительное число с наибольшим предыдущим или наименьшим последующим целым числом, которое имеет нулевые десятичные разряды, поэтому, чтобы использовать их для двух десятичных разрядов, число сначала умножается на 10 2 (или 100) для сдвига десятичной дроби. точка, а затем делится на нее для компенсации.
Если вы mathпо какой-то причине не хотите использовать модуль, вы можете использовать эту (минимально протестированную) реализацию, которую я только что написал:
def ceiling(x):
n = int(x)
return n if n-1 < x <= n else n+1

Из выходных данных образца видно, что они округлили ежемесячный платеж, что многие называют эффектом функции потолка. Это означает , что каждый месяц немного больше , чем 1 / 12 от общей суммы выплачиваются. Это сделало окончательный платеж немного меньше, чем обычно, оставив неоплаченный остаток в размере всего лишь 8.76.
В равной степени было бы справедливо использовать обычное округление с получением ежемесячного платежа в размере 8.83и немного большего окончательного платежа в размере 8.87. Однако в реальном мире люди, как правило, не любят, когда их платежи увеличиваются, поэтому округление каждого платежа является обычной практикой - оно также быстрее возвращает деньги кредитору.