该代码返回的抵押贷款支付的价值极低。
我期望有大约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年期的抵押贷款,该错误并不像按100倍利率发行的问题那样明显,但是它仍然非常重要(它低估了您的示例案例所支付的总金额50,000美元)。关于python - 返回可笑值的抵押贷款利率计算器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53862464/