【发布时间】:2015-09-11 17:44:51
【问题描述】:
我正在努力解决一个问题,即计算在 12 个月内还清信用卡余额所需的最低每月固定还款额。固定的每月付款,我的意思是一个数字,每个月都不会改变,而是一个恒定的金额,10 的倍数并且所有月份都相同,每个月都会支付。 (使用这种支付方案,余额可能会变成负数,这没关系)
所以作为输入我有
original_balance = 3329
annualInterestRate = 0.2
据此,我正在计算以下内容:
after_12_months_interest = original_balance
monthlyInterestRate = round(annualInterestRate/12.0,2)
monthly_payment = 10
total_paid = 0
for i in range(0,12):
after_12_months_interest = after_12_months_interest + (annualInterestRate/12.0)*after_12_months_interest
while total_paid < after_12_months_interest:
new_balance = 0
unpaid_balance = original_balance - monthly_payment
total_paid = 0
for i in range(0, 13):
total_paid = total_paid + monthly_payment
if total_paid < after_12_months_interest:
monthly_payment = monthly_payment + 10
print "Lowest Payment: ", monthly_payment
我遇到的问题是,我最终的每月付款只比我应得的多一点。在这种情况下,monthly_payment 的回报是 320 而不是 310。对于所有用例,我都尝试过monthly_payment,它略高于应有的值。
任何人都可以给我一个提示或想法我做错了什么。谢谢
【问题讨论】:
-
您的利息按月计算,基于您仍的欠款。这意味着您的
after_12_months_interest无效,因为它会计算整个金额的利息。 -
有一个众所周知的公式可以根据起始余额、利率和付款次数计算付款。找到那个公式,代码就变成了单行代码。
标签: python