蚂蚁借呗总利息计算——每⽉等额(等额本息)
注:花了半天研究了⼀下蚂蚁借呗的利息计算,起因是⼀次以为⽐较简单的计算发现借呗上实际利息⽐算出来的要多好⼏块钱,这就有点疑惑了。
说明:
特别说明的只有两点
1. 利息分两部分:第⼀部分,距最近⼀个还款⽇期(即分期起息⽇,每个⼈不同,如27⽇)前的利息按⽇利率算,如今天24⽇,每⽉的
还款⽇为27⽇,则24⽇到27⽇的三天累计⽇利息为第⼀部分利息;第⼆部分为分期起息⽇到最后⼀个还款⽇的分期总利息,按等额本息计算
2. 第⼆部分利息等额本息计算的⽉利率为:⽇利率*(实际分期总天数)/3。⽽不是按30天算的⽉利率,⽐如第⼆部分5⽉27⽇到8⽉
27⽇,实际天数为92天,实际计算的⽉利率为 0.00004*(92/3),即每⽉天数按实际总天数除以期数。
附等额本息相关介绍链接:
举栗:
本⾦为:1000 元,⾸个等额本息起息⽇为 27⽇,⽇利率为:0.0004 (⾸个还款⽇前的利息按⽇利率计算)
按30天计算⽉利率为:0.0120,实际⽉(期)利率=(⼏期实际天数/30)*⽇利率,为:0.012266666668
借款期数为:3期
等额本息起息⽇前的累计⽇利息(这部分按⽇利率算)为:1.20,⾸个等额本息起息⽇开始的⼏期总利息为:24.63302元
计算所得总利息为:25.83302 元
代码:
//本⾦
BigDecimal principal=new BigDecimal("1000");
//⽇利率
BigDecimal dayRate=new BigDecimal(4).divide(new BigDecimal("10000"));
//还款⽇(分期起息⽇)
Integer firstRepaymentDate=27;
//分期起息⽇前天数(按⽇利率算)
Integer days=3;
//第⼀部分累计⽇利息
BigDecimal accumuDayInterest=new BigDecimal(days).multiply(dayRate).multiply(principal).setScale(2);
//实际⽉利率
double rate=dayRate.multiply(new BigDecimal("92").divide(new BigDecimal("3"),8,BigDecimal.ROUND_HALF_UP)).doubleValue();
double month=3d;
bigdecimal转换为integerdouble monthRatePow=Math.pow(1+rate,month);
BigDecimal dividerTop=principal.multiply(new BigDecimal(rate)).multiply(new BigDecimal(monthRatePow));
BigDecimal dividerBottom=new BigDecimal(monthRatePow).subtract(new BigDecimal(1));
BigDecimal monthResult=dividerTop.divide(dividerBottom,5,BigDecimal.ROUND_HALF_UP);
//第⼆部分累计⽉(期)利息
BigDecimal monthlyInterest=monthResult.multiply(new BigDecimal(month)).subtract(principal);
BigDecimal result=accumuDayInterest.add(monthlyInterest);
System.out.println("本⾦为:"+principal+" 元,"+"⾸个等额本息起息⽇为 "+firstRepaymentDate+"⽇"+","+"⽇利率为:"+dayRate+" (⾸个还款⽇前的利息按⽇利率计算)");
System.out.println("按30天计算⽉利率为:"+new BigDecimal(30).multiply(dayRate)+","+"实际⽉(期)利率=(⼏期实际天数/30)*⽇利率,为:"+rate);
System.out.println("借款期数为:"+month+"期");
System.out.println("等额本息起息⽇前的累计⽇利息(这部分按⽇利率算)为:"+accumuDayInterest+","+"⾸个等额本息起息⽇开始的⼏期总利息为:"+m onthlyInterest+"元");
System.out.println("计算所得总利息为:"+result+" 元");

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。