贷款的计算方式

在做金融方面开发的时候,有时会涉及到贷款。既然贷款,那么就需要还款,那每月的还款额度及利息就需要进行计算。此前没有接触过此类的开发,当这次遇到的这个需求的时候,就卡壳了,费了些时间才算开发完,在此记录一下。

贷款的还款方式一般分为等额本金和等额本息。

1、等额本金

概念:等额本金是指一种贷款的还款方式,是在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息,这样由于每月的还款本金额固定,而利息越来越少,借款人起初还款压力较大,但是随时间的推移每月还款数也越来越少。

计算方式:每月还款本金 = 贷款金额/贷款期数

                 每月还款利息 = (贷款金额-(期数-1)*每月还款本金)*月利率

举例:贷款金额为a,期数为b,月利率为c,每月的本金为m,每月还款利息为n,总利息为x,还款总额为y

 m = a/b;
for (int i = 1; i <= b; i++) { n = (a - (b - 1) * m) * c; x = x+n; }
y = a + x;

2、等额本息

概念:等额本息是指一种贷款的还款方式,指在还款期内,每月偿还同等数额的贷款(包括本金和利息)。

计算方式:每月应还金额 = 贷款本金*[贷款月利率*(1+贷款月利率)^贷款月数]/[(1+贷款月利率)^贷款月数-1]

举例:a:贷款本金 ,i:贷款月利率, n:贷款月数,m:每月应还金额

m = a*[i*(1+i)^n]/[(1+i)^n-1],这也可以这样写:m = a*(i*Math.pow(1+i,n))/(Math.pow(1+i,n)-1)

说明:这种方式只能算出每月还款的本息和,等额本息的还款方式计算每月应还的本金和利息就比较麻烦,下面是我的计算方式(这种方式为啥可以计算出来,我还不是很明白,反正就是各种百度之后的结果。。。):

贷款金额为a,期数为b,月利率为c,每月的本金为m,每月还款利息为n,每月应还本息和为k,总利息为x,还款总额为y

k = a*(c*Math.pow(1+c,b))/(Math.pow(1+c,b)-1);
y = k*b;
x = y-a;
for (int i = 1; i <= b; i++) {
    n = (a*c-k)*Math.pow(1+c,i-1)+k;
    m = k-n;
}

附:月利率 = 年利率/12;Math.pow(a,b)的意思是a的b次方

发布了27 篇原创文章 · 获赞 2 · 访问量 8832

猜你喜欢

转载自blog.csdn.net/qq_26477073/article/details/105357927