信用计算器产生错误的输出
Credit calculator generates wrong output
我需要计算在 12 个月内还清信用卡余额所需的最低固定月供。正确答案应该是310,但我得到了340。我编辑了几个小时的代码,但没有找到合适的解决方案。这里有什么问题?如何修复它?
balance = 3329
annualInterestRate = 0.2
payment = 10
def year_balance(init_payment, init_balance):
""" Calculates total debt after 12 months """
interest_sum = 0
for month in range(12):
# balance after monthly payment
unpaid = init_balance - init_payment
# monthly interest of remaining balance
interest = unpaid * (annualInterestRate / 12.0)
interest_sum += interest
yearly = init_balance + interest_sum # total debt after 12 months
return yearly
total = year_balance(payment, balance) # total debt after 12 months
while total - payment * 12 > 0:
# checks if payment is big enough to fully repay the credit after 12 months
payment += 10
print "Lowest payment: ", payment
我们需要 运行 每个新付款金额的余额计数功能,因为付款越多,利息金额就越小。所以
balance = 3329
annualInterestRate = 0.2
payment = 10
def year_balance(init_payment, init_balance):
""" Calculates total debt after 12 months """
interest_sum = 0
unpaid = init_balance
for month in range(12):
# balance after monthly payment
unpaid -= init_payment
# monthly interest of remaining balance
unpaid += unpaid * (annualInterestRate / 12.0)
return unpaid
while year_balance(payment, balance) > 0:
payment += 10
print("Lowest payment: ", payment)
注意:这是为了防止您在信用期开始之前付款。如果你一个月后才这样做,你应该先加上月利率。
您实际上不需要迭代来计算每月还款额。相反,您可以使用封闭形式的解决方案:
loan_amount = 3329
annual_interest_rate = 0.2
monthly_repayment = ((loan_amount * annual_interest_rate / 12.) /
(1 - (1 + annual_interest_rate / 12.) ** -12))
print monthly_repayment
这假设每月还款和每月复利。对于一般公式,请参见 here.
我需要计算在 12 个月内还清信用卡余额所需的最低固定月供。正确答案应该是310,但我得到了340。我编辑了几个小时的代码,但没有找到合适的解决方案。这里有什么问题?如何修复它?
balance = 3329
annualInterestRate = 0.2
payment = 10
def year_balance(init_payment, init_balance):
""" Calculates total debt after 12 months """
interest_sum = 0
for month in range(12):
# balance after monthly payment
unpaid = init_balance - init_payment
# monthly interest of remaining balance
interest = unpaid * (annualInterestRate / 12.0)
interest_sum += interest
yearly = init_balance + interest_sum # total debt after 12 months
return yearly
total = year_balance(payment, balance) # total debt after 12 months
while total - payment * 12 > 0:
# checks if payment is big enough to fully repay the credit after 12 months
payment += 10
print "Lowest payment: ", payment
我们需要 运行 每个新付款金额的余额计数功能,因为付款越多,利息金额就越小。所以
balance = 3329
annualInterestRate = 0.2
payment = 10
def year_balance(init_payment, init_balance):
""" Calculates total debt after 12 months """
interest_sum = 0
unpaid = init_balance
for month in range(12):
# balance after monthly payment
unpaid -= init_payment
# monthly interest of remaining balance
unpaid += unpaid * (annualInterestRate / 12.0)
return unpaid
while year_balance(payment, balance) > 0:
payment += 10
print("Lowest payment: ", payment)
注意:这是为了防止您在信用期开始之前付款。如果你一个月后才这样做,你应该先加上月利率。
您实际上不需要迭代来计算每月还款额。相反,您可以使用封闭形式的解决方案:
loan_amount = 3329
annual_interest_rate = 0.2
monthly_repayment = ((loan_amount * annual_interest_rate / 12.) /
(1 - (1 + annual_interest_rate / 12.) ** -12))
print monthly_repayment
这假设每月还款和每月复利。对于一般公式,请参见 here.