8.833333333339(або 8.833333333333334результат 106.00/12) правильно округлено до двох знаків після коми 8.83. Математично це схоже на те, що ви хочете - це функція стелі . Назва в mathмодулі Python називається ceil:
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100)
Відповідно, функції підлоги та стелі, як правило, відображають дійсне число до найбільшого попереднього або найменшого наступного цілого числа, що має нуль десяткових знаків - тому, щоб використовувати їх для 2 знаків після коми, число спочатку множиться на 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. Однак у реальному світі люди зазвичай не люблять, щоб їхні платежі зростали, тому округлення кожного платежу є звичайною практикою - воно також швидше повертає гроші позикодавцю.