根据近期一些网友要求,我把“等额本金”和“等额本息”的计算方法进行了简化,同时也给出用户感兴趣的每月还款中本金和利息的明细计算方法,这样不仅让大家明白本和息是怎么计算的,同时也能应付利率变更之后,后续的还款如何自己去计算的问题,因为,这仅仅涉及到当时你尚欠银行贷款本金是多少(或者说你当时还持有银行多少贷款本金)的问题。
为了大家看起来简单,我先以实际的例子介绍,然后再推导出通项公式。实际上,当时我就是这样做的,只不过由于每次核对录入的公式,多少都存在错误(主要是文字和字母上的错误),因此,为防误导大家就没有贴出。为了大家明白些,今天就贴出来,如果有错误,希望大家及时批评指正。这对正在上高中的我来说不算什么,但对你来说,时间长了可能已经忘记了,所以,如果公式不易明白,你只看实例就可以了。在最后,我仍然给出Excel计算表,和vc计算程序,供详细参考。需要注意的是,贷款一般给出年利率,是百分位的%,而这里详细到月,所以使用月利率,是千分位的‰,两者之间的转换是:年利率%=月利率‰*12,月利率‰=年利率%/12 。
为了你更好理解,建议你点击参阅我以下几篇文章
住房贷款还款计算方法
住房贷款还款本息明细计算
利率调整如何计算倒存天数
利率调整后住房贷款还款计算
住房贷款提前还贷
提前还部分房贷剩余贷款还款计算方法
一。基本概念
1、等额本息还款法是每月以相等的还本付息数额偿还贷款本息。其计算公式如下:
月均还款额=[贷款本金×月利率×(1+月利率)^总还款期数]/[(1+月利率)^总还款期数-1]
2、等额本金还款法是递减还款法的一种,使用这种方法是将贷款本金分摊到还款的各期,每期应还利息由未偿还本金计算得出,每期还本金额不变,利息逐期减少。其计算公式入下:
每月还本付息额=贷款本金/还本付息次数+(贷款本金-已偿还本金累计数)×月利率
3、两种方法涉及到同样的计算公式
本月还款额=本月本金还款+本月利息
本月持有本金=上月持有本金-本月本金还款(注:最后一个月将还完本金)
本月利息=上月持有本金*月利率(注:利息还款是用来偿还剩余贷款本金在本月所产生的利息)
二。计算实例
现以贷款本金10000元,5年=60月,月利率3.45‰,为例详细说明
1.等额本息每月归还的利息逐渐减少、本金逐渐增多,本+息的和是相同的。这里对本+息逐月进行明细分解,力求使贷款人明白。
按上面的公式计算每月应偿还本+息为184.8元=10000*0.00345*(1+0.00345)^60/((1+1.00345)^60-1)。
第一月应支付利息34.50元=10000×3.45‰,应归还本金150.3元=184.8元-34.5元,还欠贷款9849.7元=10000-150.3;
第二月应支付利息33.98元=9849.7×3.45‰,应归还本金150.82元=184.8-33.98,仍欠贷款9698.88元=9849.7-150.82;……。
2.等额本金每月归还相同的本金,每月支付的利息由未偿还贷款与月利率乘积算出,是逐渐减少的。每月应固定偿还本金166.67元=10000元/60月,利息逐渐减少。
第一月归还本金166.67元,支付利息34.50元=10000×3.45‰,还欠贷款9833.33元=10000-166.67;
第二月归还本金166.67元,支付利息33.93元=9833.33×3.45‰,仍欠贷款9666.66元=9833.33-166.67;……。
3.
通过对“等额本息”和“等额本金”的每月本+息的明细比较,可以清楚地看到,还贷同样时间后,欠银行贷款本金“等额本息”比较多,因此它需要支付的利息比较多,相对来说“等额本金”对用户有利些。这只是我自己的意见,实际情况要参考银行啊!如果大家对这里的计算方法不明白,请点击参考我先前的住房贷款还款计算方法一文。
三。通项公式推导
由于“等额本金”简单,所以,先介绍它。
一).等额本金
1. 月还本金=贷款本金/总还款月数
(注意:月还本金是固定的数据)
2. 本月还贷后,本月末还欠银行贷款本金(简写为末欠本金),即:
第n月末欠本金=贷款本金-n*月还本金=贷款本金*(1-n/总还款月数)
3. 本月利息=上月末欠本金*月利率,即:
第n月利息=第(n-1)月末欠本金*月利率=贷款本金*[1-(n-1)/总还款月数]*月利率
4. 本月还款=月还本金+本月利息,即:
第n月还款=贷款本金/总还款月数+贷款本金*[1-(n-1)/总还款月数]*月利率
5. 总利息=第1月的利息+第2月的利息+第3月的利息+...+第总还款月数的利息=总贷款数*月利率*[1+1+...+1-(0+1+2+...+总还款月数-1)/总还款月数],其中,1+2+...+总还款月数-1,是等差数列,和梯形公式类似,其和=(上底+下底)*高/2,因此,
总利息=贷款本金*月利率*(总还款月数+1)/2
二).等额本息
为了便于书写公式,先设几个变量:贷款本金=DK,总还款月数=ZY,月利率=YL,月还款额=HK
(注意:月还款额是固定值)
1。第一个月,本月本金为全部的贷款本金=DK,因此,
第一个月的利息=DK*YL
第一个月的偿还本金= 月还款额-第一个月的利息=HK-DK*YL
第一个月的末欠本金(月末尚欠银行贷款本金)=总贷款额-第一个月的偿还本金=DK-(HK-DK*YL)=DK*(1+YL)-HK
2。第二个月,本月应还利息=上月末欠本金*月利率
第二个月的利息=(DK*(1+YL)-HK)*YL
第二个月的偿还本金=月还款额-第二个月的利息 =HK-(DK*(1+YL)-HK)*YL
第二个月的末欠本金=第一个月末欠本金-第二个月的偿还本金=DK*(1+YL)-HK-(HK-(DK*(1+YL)-HK)*YL)
=DK*(1+YL)^2-HK*[1+(1+YL)]
3。继续下去,就会找到通项公式,第n月的末欠本金=DK*(1+YL)^n -HK*(1+(1+YL)+...+(1+YL)^(n-1)),根据等比数列的前n项和公式:
1+r+r^2+...+r^(n-1)=(1-r^n)/(1-r)
可以得出,第n月的末欠本金=DK*(1+YL)^n-HK*((1+YL)^n-1)/YL
大家知道,当达到最后一个月时,本金将全部还完,所以当n等于总还款月数时,末欠本金为0,即:
DK*(1+YL)^ZY-HK*((1+YL)^ZY-1)/YL=0,这就是“等额本息”还款法中,“月还款额”计算公式的由来,即:HK=DK*YL*(1+YL)^ZY/((1+YL)^ZY-1)
月还款额=贷款本金*月利率*(1+月利率)^总还款月数/[(1+月利率)^总还款月数-1]
4。将“月还款额”HK回代到第n月的末欠本金公式中,并加以整理,就是我们需要的几个公式:
第n月的末欠本金=DK*[(1+YL)^ZY-(1+YL)^n]/((1+YL)^ZY-1)
第n月的利息=第n-1月的末欠本金*月利率=DK*YL*[(1+YL)^ZY-(1+YL)^(n-1)]/((1+YL)^ZY-1)
第n月的偿还本金=月还款额-第n月的利息=DK*YL*(1+YL)^(n-1)/((1+YL)^ZY-1)
总还款额=月还款额*总还款月数=HK*ZY=DK*ZY*YL(1+YL)^ZY/((1+YL)^ZY-1)
总利息=总还款额-贷款本金=HK*ZY-DK=DK*[(ZY*YL-1)*(1+YL)^ZY+1]/((1+YL)^ZY-1)
四。Excel计算表
一)。等额本息
|
A列 |
B列 |
C列 |
D列 |
E列 |
1 |
月份 |
月末欠本金 |
月付利息 |
月付本金 |
本金 |
2 |
1 |
9849.70 |
34.50 |
150.30 |
10000 |
3 |
2 |
9698.89 |
33.98 |
150.82 |
月利率 |
4 |
3 |
9547.55 |
33.46 |
151.34 |
0.00345 |
5 |
4 |
9395.69 |
32.94 |
151.86 |
年限 |
6 |
5 |
9243.31 |
32.42 |
152.38 |
5 |
7 |
6 |
9090.40 |
31.89 |
152.91 |
月还本付息 |
8 |
7 |
8936.96 |
31.36 |
153.44 |
184.79 |
9 |
8 |
8783.00 |
30.83 |
153.97 |
利息总计 |
10 |
9 |
8628.50 |
30.30 |
154.50 |
1087.86 |
e2单元格为本金10000元,e4单元格为月利率0.00345,e6单元格为年限5,e8单元格为月还本付息=$E$2*$E$4*POWER(1+$E$4,$E$6*12)/(POWER(1+$E$4,$E$6*12)-1),是固定值,也就是你每月的固定还款额,e10单元格为利息总计=$E$2*(($E$6*12*$E$4-1)*POWER(1+$E$4,$E$6*12)+1)/(POWER(1+$E$4,$E$6*12)-1)
。 a列为月份,b列月末欠本金,c列为月付利息,d列为月付本金,这样,输入到各单元格为:a2=1,b2=$E$2*(POWER(1+$E$4,$E$6*12)-POWER(1+$E$4,A2))/(POWER(1+$E$4,$E$6*12)-1),c2=$E$2*(POWER(1+$E$4,$E$6*12)-POWER(1+$E$4,A2-1))/(POWER(1+$E$4,$E$6*12)-1)*$E$4,d2=$E$8-C2,选择a2到d2,拖动d2下端的黑点到d61单元格松手即可。
二)。等额本金
|
A列 |
B列 |
C列 |
D列 |
E列 |
1 |
月份 |
月末欠本金 |
月付利息 |
本息合计 |
本金 |
2 |
1 |
9833.33 |
34.50 |
201.17 |
10000 |
3 |
2 |
9666.67 |
33.93 |
200.59 |
月利率 |
4 |
3 |
9500.00 |
33.35 |
200.02 |
0.00345 |
5 |
4 |
9333.33 |
32.78 |
199.44 |
年限 |
6 |
5 |
9166.67 |
32.20 |
198.87 |
5 |
7 |
6 |
9000.00 |
31.63 |
198.29 |
月还本金 |
8 |
7 |
8833.33 |
31.05 |
197.72 |
166.67 |
9 |
8 |
9666.67 |
30.58 |
197.14 |
利息总计 |
10 |
9 |
8500.00 |
29.90 |
196.57 |
1052.25 |
e2单元格为本金10000元,e4单元格为月利率0.00345,e6单元格为年限5,e8单元格为月还本金=$E$2/($E$6*12),是固定值,e10单元格为利息总计=$E$2*$E$4*($E$6*12+1)/2 。
a列为月份,b列月末欠本金,c列为月付利息,d列为本息合计,这样,输入到各单元格为:a2=1,b2=$E$2-A2*$E$8,c2=($E$2-(A2-1)*$E$8)*$E$4,d2=$E$8+C2,选择a2到d2,拖动d2下端的黑点到d61单元格松手即可。
五。vc计算程序
float
benjin=10000.;//贷款本金,可以任意修改
float nian=30;//贷款年限,可以任意修改
double
yuelilv1=3.45/1000.;//1-5年月利率3.45‰,随市场变换
double
yuelilv6=3.825/1000.;//6年以上月利率3.825‰,随市场变换
//改变以上4项就可以得到需要的结果
double yuelilv=0.;//月利率,随市场变换
if
(nian<=5)
yuelilv=yuelilv1;
else if (nian>5
) yuelilv=yuelilv6;
double licha=benjin/(nian*12)*yuelilv;//利差
double
yuehuanbenjin=benjin/(nian*12);//月应还本金
double shouyuelixi=benjin*yuelilv;//首月应付利息
double yuefubenjin=0;//月付本金
double yuefulixi=0;//月付利息
double sum=0,temp;//总利息
double
debxzlx=0,debjzlx=0;//等额本息总利息,等额本金总利息
double yuehuanbenfuxi;//月还本付息;
double ymqbj;//月末欠本金
double ybxhj;//月本息合计
int k=0;
FILE *fp;
//《等额本息》还款
fp=fopen("c:/住房贷款.txt","wt");
if (fp)
{
fprintf(fp,"住房贷款%.2f元分%d年%d月还\n",benjin,(int)nian,(int)nian*12);
fprintf(fp,"===============================\n");
fprintf(fp,"一、《等额本息》还款一览表(仅供参考)\n");
k=nian;
//
fprintf(fp,"月份,月末欠本金,月付利息,月付本金\n");//年限,月付本金,月付利息,本息合计,利息总计\n");
yuehuanbenfuxi=benjin*(pow((double)(1.+yuelilv),(double)(nian*12)))/(pow((double)(1.+yuelilv),(double)(nian*12))-1)*yuelilv;//月还本付息;
debxzlx=benjin*((nian*12*yuelilv-1)*pow((double)(1.+yuelilv),(double)(nian*12))+1)/(pow((double)(1.+yuelilv),(double)(nian*12))-1);//等额本息总利息
fprintf(fp,"每月固定还本付息=%.2f,
总支付的利息=%.2f\n",yuehuanbenfuxi,debxzlx);
for
(k=1;k<=nian*12;k++)//月循环
{
ymqbj=benjin*(pow((double)(1.+yuelilv),(double)(nian*12))-pow((double)(1.+yuelilv),(double)(k)))/(pow((double)(1.+yuelilv),(double)(nian*12))-1);//月末欠本金
yuefulixi=benjin*(pow((double)(1.+yuelilv),(double)(nian*12))-pow((double)(1.+yuelilv),(double)(k-1)))/(pow((double)(1.+yuelilv),(double)(nian*12))-1)*yuelilv;//月付利息;
yuefubenjin=yuehuanbenfuxi-yuefulixi;//月付本金
fprintf(fp, "d
, %.2f , %.2f
, %.2f \n",k,ymqbj,yuefulixi,yuefubenjin);
}//月循环
}//if (fp)
//《等额本金》还款
fprintf(fp,"===============================\n\n\n");
if (fp)
{
fprintf(fp,"二、《等额本金》还款一览表(仅供参考)\n");
debjzlx=benjin*yuelilv*(nian*12+1)/2;//等额本金总利息
yuehuanbenjin=benjin/(nian*12);//月应还本金
fprintf(fp,"等额本金总利息=%.2f,月固定还本金=%.2f\n",debjzlx,yuehuanbenjin);
fprintf(fp,"月份,月末欠本金,月付利息,本息合计\n");
for (
k=1;k<=nian*12;k++)//月循环
{
ymqbj=benjin-k*yuehuanbenjin;//月末欠本金
shouyuelixi=(benjin-(k-1)*yuehuanbenjin)*yuelilv;//月付利息
ybxhj=shouyuelixi+yuehuanbenjin;//月本息合计
fprintf(fp, "d
, %.2f , %.2f
, %.2f \n",k,ymqbj,shouyuelixi,ybxhj);
}//月循环
fprintf(fp,"--------------------------------\n");
fprintf(fp,"四、'等额本息'比'等额本金'多支出利息:\n%.2f元=%.2f元-%.2f元\n",debxzlx-debjzlx,debxzlx,debjzlx);
fprintf(fp,"\n");
fclose(fp);
}// if (fp)
|