等额本息还款,也称定期付息,即借款人每月按相等的金额偿还贷款本息,其中每月贷款利息按月初剩余贷款本金计算并逐月结清。把按揭贷款的本金总额与利息总额相加,然后平均分摊到还款期限的每个月中。作为还款人,每个月还给银行固定金额,但每月还款额中的本金比重逐月递增、利息比重逐月递减。
每月还款额计算公式如下:
每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
java代码如下:
importjava.math.BigDecimal;
/**
*等额本息还款算法
*CreatedbyFuYungon/8/3.
*/
publicclassPrincipalAndInterestEquals{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
BigDecimalinvest=newBigDecimal(139000);//本金
doubleyearRate=0.059;//年利率
intyear=15;//期限
doublemonthRate=yearRate/12;
intmonth=year*12;
//每月本息金额=(本金×月利率×(1+月利率)^还款月数)÷((1+月利率)^还款月数-1)
BigDecimalmonthIncome=invest.multiply(newBigDecimal(monthRate*Math.pow(1+
monthRate,month))).divide(newBigDecimal(Math.pow(1+monthRate,month)-1),2,
BigDecimal.ROUND_HALF_UP);
System.out.println("每月本息金额:"+monthIncome);
System.out.println("---------------------------------------------------");
//每月本金=本金×月利率×(1+月利率)^(还款月序号-1)÷((1+月利率)^还款月数-1)
BigDecimalmonthCapital;
BigDecimalsumCapital=BigDecimal.ZERO;
for(inti=1;i
monthCapital=invest.multiply(newBigDecimal(monthRate*(Math.pow((1+monthRate),
i-1)))).divide(newBigDecimal(Math.pow(1+monthRate,month)-1),2,
BigDecimal.ROUND_HALF_UP);
System.out.println("第"+i+"月本金:"+monthCapital);
sumCapital=sumCapital.add(monthCapital);
}
System.out.println("---------------------------------------------------");
//每月利息=剩余本金x贷款月利率
BigDecimalmonthInterest;
BigDecimalcapital=invest;
BigDecimaltmpCapital=BigDecimal.ZERO;
BigDecimalsumInterest=BigDecimal.ZERO;
for(inti=1;i
capital=capital.subtract(tmpCapital);
monthInterest=capital.multiply(newBigDecimal(monthRate)).setScale(2,BigDecimal
.ROUND_HALF_UP);
tmpCapital=invest.multiply(newBigDecimal(monthRate*(Math.pow((1+monthRate),i
-1)))).divide(newBigDecimal(Math.pow(1+monthRate,month)-1),2,
BigDecimal.ROUND_HALF_UP);
System.out.println("第"+i+"月利息:"+monthInterest);
sumInterest=sumInterest.add(monthInterest);
}
System.out.println("本金总和:"+sumCapital+"利息总和:"+sumInterest);
}
}
如果觉得《python如何计算等额本息还款_银行等额本息还款算法》对你有帮助,请点赞、收藏,并留下你的观点哦!