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



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

我期望的是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

您提供的利率是一个百分比,需要将其除以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年的抵押贷款,该错误并不像逐100x的利率问题那样明显,但仍然非常重要(它低估了您的示例案例的总支付总额约5万美元)。

最新更新