Ich schreibe gerade ein C-Programm, das unter anderem eine Tilgungstabelle mit auf zwei Stellen gerundeten Zahlen erzeugt und ausdruckt. Ich bekomme überall die richtigen Nummern, also: monthly_payment = principal_paid + interest_paid außer in der letzten Zeile (letzte Zahlung), wo sich gelegentlich meine Ergebnisse nicht summieren und um eins. Zum Beispiel:Rundung in einer Tilgungstabelle
MonthlyPay: 88.83, PrinPaid: 87.96, IntPaid: 0,88
Natürlich Blick auf die Ergebnisse zu 6 Ziffern gedruckt es leicht zu sehen ist, warum dies geschieht:
MonthlyPay: 88,834637, PrincPaid : 87.955087, IntPaid: 0.879551
Was ist der beste Weg, um eine Situation wie diese zu behandeln?
Was machen Finanzinstitute?
Die letzte Zeile einer Amortisation ist normalerweise anders. Es muss etwas anders berechnet werden als die anderen Zeilen. Die letzte Zahlung sollte der letzte Saldo zuzüglich der Zinsen aus der letzten Periode sein, da dies der Betrag ist, der zu einem Endsaldo von Null führt. Sie könnten die Berechnungen in Pennies tun, um Rundungsfehler zu bekämpfen. Für maximalen Realismus, stellen Sie sicher, dass die Rundung von Pfennigen zu Gunsten der Bank erfolgt –
Ich mache die Berechnung für die letzte Zahlung etwas anders, und deshalb habe ich diese Rundungsprobleme. Jedenfalls habe ich eine einfache Routine eingeführt, die überprüft, ob die Summe der gerundeten Zins- und Tilgungszahlungen gleich der monatlichen Zahlung ist, und wenn dies nicht der Fall ist, fügt sie der monatlichen Zahlung oder der Zinszahlung einen Cent hinzu. Es sieht aus wie ein Hack, aber es funktioniert wie ein Zauber. Und es begünstigt immer die Bank. – JSz
@JSz - Klingt wie die richtige Lösung für mich. –