/**
* 计算还款本金和利息
* @param amortizingmode 还款类型
* @param amount 贷款金额
* @param rate 利率
* @param period 时间间隔 1次 / 2次 /n次
* @param repaytype 还款间隔类型 年 月 日
* @param repayday 还款日期
* @param loanday 放款日期
*/
//(800000*0.045/12*(1+0.045/12)^(20*12))/((1+0.045/12)^(20*12)-1)
int months = DateUtil.calculateMonthsIn(loanday, repayday);
double i = amount*rate/12*period*Math.pow((1+rate/12*period), months/period);
double j = Math.pow(1+rate/12*period,months/period)-1;
DecimalFormat df=new DecimalFormat("0.00");
BigDecimal benlihe = new BigDecimal(df.format(i/j));
System.out.println("分次还本息每次还款额:"+ benlihe);
偿还利息 = 剩余本金*年利率/12
国内都是单利的。
一、等额本息法:通俗点讲,就是每个月所还金额相同的一种利息计算方式。
优点:计算简便,每个月金额相同,便于月供者安排资金。
原理:每月还款额,按现行利率折现到贷款时点,求出每个月固定还款额。
A*(P/A,i,N)=P
A----- 每月还款额
i –--- 现行月利率(公积金利率或者商业贷款利率)
N----- 还款期数
P-----贷款总额
(P/A,i,N)---年金现值系数 (可查年金现值系数表获得)
例如:40W 15年贷款 等额本息法
全为公积金贷款 i=5.22%/12=0.435% N=12*15=180期
查年金现值系数表:(P/A,0.435%,180)=124.641655
求得A=3209.20
即每个月还款金额为 3209.2元。
二、等额本金法:指每个月还的本金相同,但利息不同,这样每个月还款总数就不相同,由于本金不断减少,所以,每月还的本利和递减。
优点:年限较长的话,总体利息比较低。
原理:每月还款额=每月还的固定本金+利息
B=P/N+I(递减)
B-----第一个月还款额
P-----贷款总额
N-----还款期数
I-----还的利息
例如:40W 15年贷款 等额本金法
全为公积金贷款 i=5.22%/12=0.435% N=12*15=180期
B=400000/180+400000*0.435%=3962
即第一个月还款金额为 3962 元。
复利的,本金(1+i)n次方。
n为期限,i为利率