这个程序运行良好,但它返回的每月付款是完全关闭。如果本金为40万美元,利率为11%,支付期为10年,则返回每月44000.16美元的付款。我在谷歌上搜索了方程(算法?)我不知道我错在哪里。

import locale
locale.setlocale(locale.LC_ALL, '')

def mortgage(principal, interest, n):
    payment = principal*((interest*(1+interest)**n) / ((1+interest)**n-1))
    return payment

principal = float(input("What is the amount of the loan you are taking out? $"))
interest = float(input("What is the interest rate? (%) ")) / 100
n = float(input("How many years? ")) * 12
print
print "Your monthly payment would be", locale.currency(mortgage(principal, interest, n))

最佳答案

问题在于你所使用的利率。你要求年利率,但从不转换成月利率。
From https://en.wikipedia.org/wiki/Mortgage_calculator#Monthly_payment_formula:
r-月利率,以十进制表示,而不是a
百分比。因为所报的年百分率不是
复合利率,月百分率就是年利率
百分率除以12;每月百分率除以
100表示r,以十进制表示的月利率。
我刚在我的电脑上试过,把利率除以12,计算出每月5510美元,这和其他的按揭计算器是一致的。

关于python - 抵押计算器数学错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30090173/

10-12 18:26