8.833333333339
(oder 8.833333333333334
das Ergebnis von 106.00/12
) richtig auf zwei Dezimalstellen gerundet ist 8.83
. Mathematisch klingt es so, als ob Sie eine Deckenfunktion wollen . Der in Pythons math
Modul heißt ceil
:
import math
v = 8.8333333333333339
print(math.ceil(v*100)/100) # -> 8.84
Die Boden- und Deckenfunktionen ordnen im Allgemeinen eine reelle Zahl der größten vorherigen oder kleinsten folgenden Ganzzahl zu, die keine Dezimalstellen hat. Um sie also für 2 Dezimalstellen zu verwenden, wird die Zahl zuerst mit 10 2 multipliziert (oder 100) , um die Dezimalstelle zu verschieben Punkt und wird dann danach durch ihn geteilt, um zu kompensieren.
Wenn Sie das math
Modul aus irgendeinem Grund nicht verwenden möchten , können Sie diese (minimal getestete) Implementierung verwenden, die ich gerade geschrieben habe:
def ceiling(x):
n = int(x)
return n if n-1 < x <= n else n+1
Aus der Beispielausgabe geht hervor, dass sie die monatliche Zahlung aufgerundet haben , was viele als Effekt der Deckenfunktion bezeichnen. Dies bedeutet, dass jeden Monat etwas mehr als 1 ⁄ 12 des Gesamtbetrags gezahlt werden. Dadurch war die Restzahlung etwas geringer als gewöhnlich - und es blieb nur ein Restbetrag von unbezahlt8.76
.
Es wäre gleichermaßen gültig gewesen, eine normale Rundung zu verwenden, die eine monatliche Zahlung von 8.83
und eine etwas höhere Restzahlung von ergibt 8.87
. In der realen Welt möchten die Menschen jedoch im Allgemeinen nicht, dass ihre Zahlungen erhöht werden. Daher ist es üblich, jede Zahlung aufzurunden. Außerdem wird das Geld schneller an den Kreditgeber zurückgegeben.