所以我对Python很陌生。。。问题如下:
如果一个人每月只支付信用卡公司要求的最低月供款,则编写一个程序计算一年后的信用卡余额。
我目前的代码如下:
month = 1
minimumMonthlyPayment = (balance * monthlyPaymentRate)
totalPaid = 0.0
while month < 13:
print "Month: " + str(month)
print "Minimum Monthly Payment: " + str(round(minimumMonthlyPayment, 2))
balance = (balance - (balance * monthlyPaymentRate)) * (1 + (annualInterestRate/12))
minimumMonthlyPayment = (balance * monthlyPaymentRate)
print "Remaining Balance: " + str(round(balance, 2))
totalPaid += minimumMonthlyPayment
month += 1
print "Total Paid: " + str(round(totalPaid, 2))
print "Remaining Balance: " + str(round(balance, 2))
以下是正确的输出:
所以所有的数字在两个输出中都是相同的,但我的总支付最终是1732.94,而不是正确的数额1775.55。我把我输出的数字加在一个侧面计算器上,结果是1775.55。我的代码中有什么东西会引起这种情况吗?在
以下是测试代码使用的变量的值:
^{pr2}$
在计算
minimumMonthlyPayment
利率之前,您正在重新计算余额。在所以
balance * monthlyPaymentRate
在第8行和第9行得到了不同的金额,因为余额发生了变化。在如果将
balance * monthlyPaymentRate
分配给这些行之前的一个变量,并将其用于两个计算,则会更正此问题。在干得好!你的代码几乎是完美的。唯一的错误是8号线需要在9号线之前运行。你要改变余额,然后用改变后的余额来计算每月最低还款额。在更新余额之前,您需要计算每个月的最低月付款额。在
希望这有帮助!在
相关问题 更多 >
编程相关推荐