我的贷款还款计算器中的数学出现错误。我正在尝试创建一个类,我可以在其中创建贷款,按月或年对其进行迭代,并将付款应用于贷款。我不完全确定我的问题出在这段代码中。
我尝试过更改付款方式,但我遇到了数学的根本问题。我认为我的利息累积方式和本金平衡存在根本问题
class loan():
p_i = 0 #initial principle
p_new = 0 #total balance
rate = 0 #interest rate (in %)
acc = 0 #total accrued interest
def __init__(self,p,rate):
self.p_i = p
self.p_new = p
self.rate = rate
def month(self):
if self.p_i == self.p_new:
self.acc += self.p_i * (1 + (self.rate/100)/12)
self.p_new = self.p_i + self.acc
else:
self.acc += self.p_i * (1 + (self.rate/100)/12)
self.p_new = self.p_i + self.acc
def year(self):
if self.p_i == self.p_new:
self.acc += self.p_i * (1 + (self.rate/100)) - self.p_i
self.p_new = self.p_i + self.acc
else:
temp = 0
temp = self.p_i * (1 + (self.rate/100)) - self.p_i
self.p_new += temp
self.acc += temp
def payment(self,amount):
temp = 0
if amount < self.acc:
self.acc -= amount
else:
self.p_i -= amount - self.acc
self.acc = 0
self.p_new -= amount
我希望输出 10000 美元的贷款,利率为 5%,然后是 10500,然后是 11025,应计利息是 1025,而不是我分别得到 11000 和 1000。