我目前正在編寫一個C程序,其中包括生成並打印出一個攤銷表,其中數字四捨五入爲兩位數。我在任何地方都能得到正確的數字,即:monthly_payment = principal_paid + interest_paid,除了最後一行(最後一次付款),偶爾我的結果不加起來,並且減去1。例如:在攤銷表中舍入
MonthlyPay:88.83,PrinPaid:87.96,IntPaid:0.88
當然看着打印6位數字很容易看到爲什麼發生這種情況的結果:
MonthlyPay:88.834637,PrincPaid :87.955087,IntPaid:0.879551
處理這種情況的最佳方法是什麼?
金融機構做什麼?
攤銷中的最後一行通常是不同的。它必須以與其他行略有不同的方式進行計算。最後的付款應該是最後的餘額加上上一期的利息,因爲這是導致最終餘額爲零的金額。你可以用便士來進行計算,以消除舍入誤差。對於最大的現實主義,確保所有四捨五入的分數便士都在銀行的青睞 –
我在做最後一次付款的計算略有不同,這就是爲什麼我有這些舍入問題。在任何情況下,我最終都會做一個簡單的例程,檢查整數利息和本金付款的總和是否等於每月付款,如果不是,則每月付款或利息付款增加一分錢。它看起來像一個黑客,但它像一個魅力。它總是有利於銀行。 – JSz
@JSz - 聽起來像是我的正確解決方案。 –