如何计算贷款的月费?
给出的是:
这个问题与以往有点不同,因为目标不是在贷款期结束后还清贷款,而是仍然欠下一定数额的贷款。我已经找到了一个算法,所以如果我想支付全部金额,就可以解决这个问题,但对于这个问题来说,它当然行不通,因为这个问题的目标是最终欠下一个给定的金额,而不是不欠任何东西。
我设法从一个猜测开始解决这个问题,然后继续改进这个猜测,直到它足够接近。不过,我想知道,是否有更好的方法来简单计算,而不是仅仅猜测。
编辑:以下是我现在的做法。
def find_payment(start, end, months, interest):
difference = start
guess = int(start / months * interest)
while True:
total = start
for month in range(1, months + 1):
ascribe = total * interest / 12
total = total + ascribe - guess
difference = total - end
# See if the guess was good enough.
if abs(difference) > start * 0.001:
if difference < 0:
if abs(difference) < guess:
print "payment is %s" % guess
return evolution(start, guess, interest, months)
else:
mod = int(abs(difference) / start * guess)
if mod == 0:
mod = 1
guess -= mod
else:
mod = int(difference / start * guess)
if mod == 0:
mod = 1
guess += mod
else:
print "payment is %s" % guess
return evolution(start, guess, interest, months)
演化只是一个函数,它显示贷款的付款方式和利息支付方式,总结支付的利息总额等
举个例子,如果我想知道一笔贷款的月供,从10万美元开始,到5万美元结束,利息8%,期限70个月,打电话给
>>> find_payment(100000, 50000, 70, 0.08)
payment is 1363
在上面的情况下,我会欠49935英镑,我通过循环5次。循环所需的次数取决于我想接近的程度,而且会有一些变化。
这基本上是一个mortgage repayment calculation。
假设开始时间大于结束时间,并且利息在0和1之间(即10%利息为0.1)
首先考虑一下你想付清的那部分款项。
每月付款方式如下:
然后你需要考虑额外的利息。等于剩余本金乘以月利息
所以总的付款是
你举的例子
当我在Excel中测试这些值时,在70次付款后,重做贷款是50000。假设你在每月付款前支付名义利息。
你可以继续付每个月的利息,然后,你将永远欠同样的钱。
也许最简单的方法就是把贷款分成两部分,一部分是要全额偿还,另一部分是你什么也不还。你已经计算了第一部分的月费。
相关问题 更多 >
编程相关推荐