等额本息、等额本金是两种常见的还款方式,是常见的金融术语,我们购房贷款时也会遇到这两个还款方式的选择。等额本息的每期还款总金额(本金+利息)是固定的,那么这个数值是怎么计算出来的呢?近期业务开发中刚好遇到等额本息的相关需求,整理记录了一下计算公式与推导过程。

一、等额本息每期还款总金额计算公式

  假设贷款总金额为A,月利率为β,贷款期数为k,每期需还款总金额(本金+利息)为x,则:

  第一期还款后,欠款总金额 Q1 = A * (1 + β) - x

  第二期还款后,欠款总金额 Q2 = Q1 * (1 + β) - x = [A * (1 + β) - x] * (1 + β) - x = A * (1 + β) ^ 2 - [1 + (1 + β)] * x

  第三期还款后,欠款总金额 Q3 = Q2 * (1 + β) - x = {A * (1 + β) ^ 2 - [1 + (1 + β)] * x} * (1 + β) - x = A * (1 + β) ^ 3 - [(1 + β) ^ 2 + (1 + β) + 1] * x

  由此可得出,第k期还款后,欠款总金额 Qk = Qk-1 * (1 + β) - x = ... = A * (1 + β) ^ k - [(1 + β) ^ (k-1) + (1 + β) ^ (k-2) + ... + 1] * x。

  我们发现[]内是等比数列,等比数列求和公式是不是又忘记了?我们一起来推导下。设y=1 + β,则Sk = 1 + y + y ^2 + ... + y ^ (k-1),y * Sk = y + y ^2 + ... + y ^ (k-1) + y ^ k,两公式相差得 y * Sk - Sk = y ^ k - 1,从而得出Sk = (y ^ k - 1) / (y -1)。

  由此继续 Qk = A * (1 + β) ^ k - {[(1 + β) ^ k - 1] / β} * x,第k期还款后贷款结束,因此Qk = 0,即 A * (1 + β) ^ k - {[(1 + β) ^ k - 1] / β} * x = 0,得出等额本息每期还款本息总额 x = A * β * (1 + β) ^ k / [(1 + β) ^ k - 1],这便是每期需要还款的总金额。

二、等额本息每期还款本金计算公式

  等额本息每期还款总金额x公式已经有了,那么每期还款的本金是多少呢?假设第n期还款本金为Pn,则:

  第一期需还本金 P1 = x - A * β

  第二期需还本金 P2 = x - (A - P1) * β = x - {A - [x - A * β]} * β = x - A * β + (x - A * β) * β = P1 + P1 * β = P1 * (1 + β)

  第三期需还本金 P3 = x - (A - P1 - P2) * β = x - {A - P1 - P1 * (1 + β)} * β = x - A * β + P1 * β + P1 * (1 + β) * β = P1 * (1 + β) ^ 2

  则可以猜测第n期需还本金 Pn = P1 * (1 + β) ^ (n - 1)

  下面我们来论证这个公式,假设公式成立,则 P(n + 1) = x - [A - P1 - P2 - ... -Pn] * β = x - {A - P1 * [1 + (1 + β) + ... + (1 + β) ^ (n - 1)]} * β = x - {A - P1 * [(1 + β) ^ n - 1] / β} * β = x - A * β + P1 * [(1 + β) ^ n - 1] = p1 * (1 + β) ^ n

  由此可以得出,等额本息还款中每期还款本金 Pn = P1 * (1 + β) ^ (n - 1)

三、首期利息与末期本金

1、首期利息

  等额本息中,首期还款可能存在不足月的情况,这时候本金可以严格按照上述公式得出,但利息肯定不能按满月算了(每期还款利息是按期数-月为单位的),这时候首期利息得需要按实际使用天数进行特殊计算。

  假设第一期还款时实际使用天数为 t,则首期利息 L1 = A * β * t / 30  

  如何计算首期实际使用天数?

  首期实际使用天数计算实性的是“对月对日”,首先找到首期还款日t1对应上一期的还款日t0(若当月t0不存在,则往下延一天,即下月的首日),再比较起息日y和t0的天数差,综合,首期实际使用天数 t = 30 - (y - t0)。

  范例:

  1) 起息日2018-02-15,首期还款日2018-03-10,则t0为2018-02-10,得出首期实际使用天数 t = 30- (2018-02-15 - 2018-02-10) = 25

  2) 起息日2018-03-02,首期还款日2018-03-31,则t0为2018-03-01(对应2018-02-31不存在,则顺延一天),得出首期实际使用天数 t = 30- (2018-03-02 - 2018-03-01) = 29

2、末期本金

  由于每期还款本金是公式计算后取四舍五入的值,存在精度丢失问题,因此末期还款本金金额为 Pk = A - P1 - P2 - ... - P(k-1)

四、总结

  假设贷款总金额为A,月利率为β,贷款期数为k,每期需还款总金额(本金+利息)为x,第n期需还款本金为Pn,第n期需还利息为Ln,则:

  第1至k-1期每期还款本金 Pn (1 <= n < k) = P1 * (1 + β) ^ (n - 1)

  第k期还款本金 Pk = A - P1 - P2 - ... - P(k-1)

  第1期还款利息 L1 = A * β * t / 30   

  第2期到k期还款利息 Ln = x - Pn

  第1期还款本息总额 w1 = P1 + L1

  第2期至k期还款本息总额 wn = x

等额本息计算公式推导相关推荐

  1. java 等额本息计算方式

    投资理财,等额本息计算方式 以下按照10000元,以年利率15.5%,投资期限为6个月,以等额本息方式偿还来计算 /*** 等额本息计算*/ public class PrincipalAndInte ...

  2. 等额本金和等额本息房贷公式推导

    去年利率调整比较频繁,我家贷款又多,以往不太关心房贷公式的,银行账单来了是多少就多少.现在为了要看懂账单,研究了一下房贷公式,把自己的理解记录一下.因为用到了数学公式,博客里直接输有问题,就在 Wor ...

  3. 等额本息计算 按期计算

    本*率*每期月数*(1+率*每期月数)^期数 (1+率*每期月数)^期数-1

  4. 蚂蚁借呗总利息计算——每月等额(等额本息)

    注:花了半天研究了一下蚂蚁借呗的利息计算,起因是一次以为比较简单的计算发现借呗上实际利息比算出来的要多好几块钱,这就有点疑惑了. 说明: 特别说明的只有两点 利息分两部分:第一部分,距最近一个还款日期 ...

  5. 等比序列的实际应用 —等额本息还款金额公式推导

    缘起 等额本息是买房按揭贷款时最常用的一种还款方式,其意义从字面就可以理解,就是每期还款的本金加利息之和相等.我们在计算每期应还本金和利息时,在Excel中可以方便的使用函数PMT(rate,nper ...

  6. 等额本金贷款和等额本息贷款计算和比较

    等额本息贷款 等额本息还款法即把按揭贷款的本金总额与利息总额相加,然后平均分摊到还款期限的每个月中,每个月的还款额是固定的,但每月还款额中的本金比重逐月递增.利息比重逐月递减.这种方法是目前最为普遍, ...

  7. 根据贷款还款方式(等额本金,等额本息,等本等息,先息后本),计算本息

    package com.alex.examples.utils.money;import lombok.Data;import java.io.Serializable; import java.ma ...

  8. 如何使用python进行等额本金-等额本息贷款计算

    #贷款额为a,月利率为i,年利率为I,还款月数为n a = 500000.00 I = 0.11495 i = I/12 n = 60 print("-----等额本息计算,以5个月为例-- ...

  9. BigDecimal用法之计算等额本金和等额本息

    一.引言 <EffactiveJava>中介绍float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算 ...

  10. 写一个MySql存储过程实现房贷等额本息还款计算(另外附javascript代码)

    写一个MySql存储过程实现房贷等额本息还款计算 MySql存储过程代码如下: DROP procedure IF EXISTS `calc_equal_interest_proc`;DELIMITE ...

最新文章

  1. python做电脑软件-程序员带你十天快速入门Python,玩转电脑软件开发(一)
  2. 二陈丸配什么吃不上火_宝妈一个人带孩子是什么感觉?前三种场景,不知道是怎么熬过来的...
  3. 领会一些比较巧妙的算法
  4. Hexo 入门指南(五) - 搬家 备份
  5. python爬虫百度图片_python实现爬取百度图片的方法示例
  6. redis 之 ae 模型测试
  7. bzoj 1237: [SCOI2008]配对(DP)
  8. 将RGB转换为JPG格式到内存的代码
  9. 【C语言】04-函数
  10. ORACLE_mldn_002
  11. 计算机公式大小写,Excel表格金额大小写转换公式设置
  12. 滴滴AI负责人叶杰平离职,CTO张博暂时接管
  13. php的pdo mysql扩展模块_php pdo链接
  14. Android使用FtpServer开启FTP服务端
  15. Python在大数据处理中的实践运用,实践操作精选
  16. Mybatis之xml方式(一)
  17. BLE协议栈 – SM
  18. 远程桌面连接的工具及使用方法
  19. mysql innodb 数据打捞(二)innodb 页面打捞编程
  20. Android摄像头获取实时数据+Demo

热门文章

  1. dota2收集服务器延迟,dota2亚服延迟高的解决办法!
  2. MATLAB画雷达图(四行代码)
  3. python爬取文字和图片_Selenium_Chrome爬取文本和百度图片
  4. C64x+中断控制器
  5. 怎样批量更改文件夹里的文件名称?
  6. UWB定位系统中为何要加入陀螺仪
  7. 泛微云桥e-Bridge 授权破解方法
  8. 打造自己的ip代理池
  9. 3dB带宽的简要解释
  10. xgp游戏列表_PC版XGP正式公布,畅玩上百款游戏每月只需10美元