抵押贷款利率计算器返回可笑的值

时间:2018-12-20 04:36:34

标签: python python-3.x math

该代码返回的抵押贷款付款价值极低。

我期望大约18,000(假设没有税,没有保险等),那么我需要更改什么值才能获得该数字?他们的编码方式有问题吗?是的,我做了Google。只是在下午的一些项目中恢复编码。谢谢!

p = float(input("What is your mortgage principal?"))
r = float(input("What's your interest rate?"))
t = int(input("How long is your mortage gonna last?"))

n = 12

finalresult = p * (1 + (r/t))**(n * t)

print("This is how much you will be paying over one year!", finalresult)

示例输入/输出:

What is your mortgage principle?300000
What's your interest rate?3.5
How long is your mortage gonna last?15
This is how much you will be paying over one year! 7.44056195468128e+21

Process finished with exit code 0

1 个答案:

答案 0 :(得分:2)

您提供的利率是一个百分比,需要除以100才能产生数学上有用的值。如果输入了0.035,您将得到一个合理的数字456365.140385318。如果您希望用户提供百分比(合理),请对其进行除法,其余的数学公式将得出:

r = float(input("What's your interest rate (as a percentage, e.g. 3.5)?")) / 100

如评论中所述,finalresult的计算应使用r/n,而不是r/t;您是在一年中的几个月内分配利率,而不是在抵押年限内分配。对于15年期的抵押贷款,该错误不像按100倍利率发行的问题那样明显,但它仍然非常严重(它低估了您的示例案例所支付的总金额约50,000美元)。