该代码返回的抵押贷款付款价值极低。
我期望大约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
答案 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美元)。