要求我创建一个函数:maximum_home_loan(PMT,i,n),该函数计算我的客户可以负担的最大房屋贷款,如果他们:
这就是我的做法,但我认为这个数字并没有加起来。
def maximum_home_loan(PMT, i, n):
For i in range(n):
PMT = PMT*(1 + i)**n
PV = PMT + i
PV = PV + PMT
PV = round(PV, 2)
return float(PV)
print(maximum_home_loan(15000*12, 0.1045/100, 25))
输出:369523.89
输出实际上应该是:1578934.73
这是怎么回事?
答案 0 :(得分:2)
我不确定我要在代码中做什么,所以这是另一个解决方案。
假设第一年末您的债务如下:
债务 1 =贷款*(1 + i)-PMT
第二年末它将是:
D 2 = D 1 *(1 + i)-PMT =贷款*(1 + i) 2 -PMT *( 1 +(1 + i))
第N年,我们得到:
D n =贷款*(1 + i) n -PMT * sum j = 0 n-1 (1 + i) j
因为D n 必须为零,所以您有一个css({top, left})
的公式(我敢肯定,您可以大大简化总和,但我不记得如何参见下文):
Loan
您真的不需要使用def calculate(PMT, i, n):
return PMT * sum((1+i)**j for j in range(n)) / (1+i)**n
计算总和,因为有一种用于此类总和的公式:
sum j = 0 n-1 r j =(r n -1)/(r -1)
所以,这是运行中的公式:
sum(...)