分享

住房贷款还款本息明细计算

 超越梦想之上 2014-05-31

 根据近期一些网友要求,我把“等额本金”和“等额本息”的计算方法进行了简化,同时也给出用户感兴趣的每月还款中本金和利息的明细计算方法,这样不仅让大家明白本和息是怎么计算的,同时也能应付利率变更之后,后续的还款如何自己去计算的问题,因为,这仅仅涉及到当时你尚欠银行贷款本金是多少(或者说你当时还持有银行多少贷款本金)的问题。
  为了大家看起来简单,我先以实际的例子介绍,然后再推导出通项公式。实际上,当时我就是这样做的,只不过由于每次核对录入的公式,多少都存在错误(主要是文字和字母上的错误),因此,为防误导大家就没有贴出。为了大家明白些,今天就贴出来,如果有错误,希望大家及时批评指正。这对正在上高中的我来说不算什么,但对你来说,时间长了可能已经忘记了,所以,如果公式不易明白,你只看实例就可以了。在最后,我仍然给出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列
月份 月末欠本金 月付利息 月付本金 本金
   9849.70 34.50 150.30 10000
2 9698.89 33.98 150.82 月利率
9547.55 33.46 151.34 0.00345
9395.69 32.94 151.86 年限
9243.31 32.42 152.38 5
9090.40 31.89 152.91 月还本付息
8936.96 31.36 153.44 184.79
8783.00 30.83 153.97 利息总计
10 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=1b2=$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列
月份 月末欠本金 月付利息 本息合计 本金
   9833.33 34.50 201.17 10000
2 9666.67 33.93 200.59 月利率
9500.00 33.35 200.02 0.00345
9333.33 32.78 199.44 年限
9166.67 32.20 198.87 5
9000.00 31.63 198.29 月还本金
8833.33 31.05 197.72 166.67
9666.67 30.58 197.14 利息总计
10 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=1b2=$E$2-A2*$E$8c2=($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)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多