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
. Однак у реальному світі люди зазвичай не люблять, щоб їхні платежі зростали, тому округлення кожного платежу є звичайною практикою - воно також швидше повертає гроші позикодавцю.