抵押贷款计算器数学错误

时间:2015-05-07 01:00:52

标签: python math calculator

此程序运行正常,但它返回的每月付款完全关闭。本金额为400,000美元,利率为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))

1 个答案:

答案 0 :(得分:7)

问题在于您使用的利率。您要求年利率并且永远不会转换为月利率。

来自https://en.wikipedia.org/wiki/Mortgage_calculator#Monthly_payment_formula

  

r - 每月利率,以小数表示,而不是a   百分比。由于引用的年度百分比率不是   复合率,每月百分率仅为年度   百分率除以12;将每月百分比率除以   100给出r,表示为小数的月率。

我刚刚在我的电脑上试过这个并将利率除以12计算为每月5510美元,这与其他抵押贷款计算器一致。