年金计算器
结果
现值
- 终值
- 260,463.33
- 付款总额
- 120,000.00
一串等额付款有两个价值,而这两个数并不相等。一个是这串钱今天值多少——按你选的利率一期一期折回来;另一个是最后一期付完时它已经滚成了多少——按同一个利率一期一期滚上去。多数年金页面只回答其中一个。本页用同一组五个输入把两个答案一起印出来,于是它们之间的关系是看得见的而不是要你相信的:终值就是现值往前滚,中间每过一期乘一次 (1 + i)。第三个数完全不看利率,它只是付款本身的总和,而正是它让另外两个数读得懂。每月 500、付二十年,一共过手 120,000;这个承诺今天值 64,491.25,而它到期末会变成 260,463.33。
每月 500、年利率 7%、期末付款,五档年数下的两端价值
| 年数 | 付款总额 | 年金现值 | 年金终值 |
|---|---|---|---|
| 5 | 30000 | 25251 | 35796.45 |
| 10 | 60000 | 43063.18 | 86542.4 |
| 20 | 120000 | 64491.25 | 260463.33 |
| 30 | 180000 | 75153.78 | 609985.5 |
| 40 | 240000 | 80459.42 | 1312406.7 |
中间那一列是直线,两侧不是,把它们放在一起正是这张表的用意。从 5 年到 40 年,付款总额翻 8 倍(30,000 → 240,000)。现值跟不上:它从 25,251 涨到 80,459,只涨 3.2 倍,而且涨幅大部分在前十年就到手了——30 年到 40 年之间它只多约 5,300,付款总额却多 60,000,因为三十年后才发生的付款折回来几乎等于零。终值反过来一路跑开:35,796 到 1,312,407,涨 36.7 倍,其中一半以上落在最后十年。第三行是默认情形,上面那两个数 64,491.25 与 260,463.33 正是两个单侧页面的默认结果——所以这张表既是图示也是对账。每一行里最后一列除以第三列都等于 (1 + i)ⁿ:1.4176、2.0097、4.0387、8.1165、16.3114,也就是 1.0058333 的 60、120、240、360、480 次方。
公式
年金现值 = 每期付款额 × [1 − (1 + i)⁻ⁿ] ÷ i 年金终值 = 每期付款额 × [(1 + i)ⁿ − 1] ÷ i 普通年金按期初付算时两式都再乘一次 (1 + i) 其中 i = 年利率 ÷ 一年付款次数,n = 年数 × 一年付款次数
- 每期付款额
- 每一期那笔等额的钱——可以是流进你口袋的,也可以是你付出去的
- 年利率
- 名义年利率,两个方向同时用它:折回今天时先除以一年付款次数变成每期利率,滚向期末时按同一个每期利率复利——默认的每年 7% 按月就是 0.5833%
- 年数
- 付款要持续多久,乘以一年付款次数就是总期数
- i
- 每期利率——年利率除以一年付款次数
- n
- 总期数——年数乘以一年付款次数
- 年金现值
- 这串付款今天值多少,每一期未来的钱都按每期利率一期一期折回来
- 年金终值
- 同一串付款到期滚成多少,每一期的钱都按每期利率滚到最后一期那个时点上
当手上是一串等额付款、而你想一眼看到它两端的价值而不是分两次去看时用它——一份养老金在跟一笔一次性给付作比较、一个租金数字在跟买价作比较、一项储蓄计划里你想看看投进去的钱跟它两端的价值差多少。它也是看清复利缺口最快的办法:同一笔 120,000 今天值 64,491、期末是 260,463,两个数之间的差不是费用也不是算错了,而是二十年的复利。要反过来由一笔本金求每期付款额时它不合适,那是另一个问题、另有页面;付款额不等时它也不合适——随通胀逐年上调的、或者随市场收益浮动的现金流不是年金,两个式子都不适用。
算例
默认情形,兼与那两个单侧页面互相印证
- 每期利率:7% ÷ 12 = 每月 0.58333%。期数:20 × 12 = 240。
- 年金现值系数:[1 − 1.0058333⁻²⁴⁰] ÷ 0.0058333 = 128.98,于是 500 × 128.98 = 64,491.25。
- 年金终值系数:[1.0058333²⁴⁰ − 1] ÷ 0.0058333 = 520.93,于是 500 × 520.93 = 260,463.33。
- 付款总额:500 × 240 = 120,000,这一格与利率无关。
- 核对:64,491.25 × 1.0058333²⁴⁰ = 64,491.25 × 4.0387 = 260,463.33。
前两步得到的两个数,正是年金现值那一页与年金终值那一页各自的默认结果——三个分开写的页面在同一组五个输入上一分不差地对上。最后一步才是本页存在的理由:终值就是现值乘以 (1 + i) 一共乘 240 次,也就是 4.0387。值得留意 4.0387 既不等于 20 × 7% = 1.40,也不等于 1.07²⁰ = 3.87:利率一旦换算成月利率,复利因子就是 (1 + 0.0058333)²⁴⁰,拿年利率走任何捷径都还原不出它。
每期期初付款,而不是期末
- 两个系数就是上一例的那两个。
- 每一期都提前一期发生,整串付款整体前移:两个结果都乘 1.0058333。
- 64,491.25 × 1.0058333 = 64,867.45。
- 260,463.33 × 1.0058333 = 261,982.70。
两个价值涨的幅度完全一样,都是 0.583% 即一期的利息——这是看清本页两个数其实是同一个东西的两种看法最干净的方式:如果时点调整让它们涨的比例不同,那它们说的就不是同一串付款。每期提前一期发生,两个方向上它都更值钱,因为每一笔都离你更近一期;而付款总额 120,000 纹丝不动:时点决定这串付款值多少,从不决定它里面有多少钱。
零利率,三个数合流
- 没有利率就没有可折掉的、也没有可滚出来的。
- 两个闭式在这一档都是 0 ÷ 0,于是都退回期数本身:240。
- 500 × 240 = 120,000,三格都是它。
三个数合成同一个,是对另外两个数含义最直白的说明:现值与终值都是那个总额按时间做的调整,而没有利率就没有调整。这一档也是写错时最先暴露的地方——照闭式硬写,系数是 0 ÷ 0,页面会印出 NaN——所以共用的内核把零利率单列成一个分支,而不是当成一个很小的数。
改成一年付一次,总额随之变了
- 每期利率:就是每年 7%,不再换算。期数:20。
- 年金现值系数:[1 − 1.07⁻²⁰] ÷ 0.07 = 10.59,于是 500 × 10.59 = 5,297.01。
- 年金终值系数:[1.07²⁰ − 1] ÷ 0.07 = 40.995,于是 500 × 40.995 = 20,497.75。
- 付款总额:500 × 20 = 10,000。
这一档的比值是 3.8697,而按月是 4.0387——同一个名义 7%,一年只计一次息,滚出来的复利就少一些。这是频率口径出现在答案里而不是出现在利率里的样子,而它比看上去重要:按年的两个数与按月的两个数差了两成以上,变的只是利息多久记一次账。同样这组对比放在 0% 上则一点差别都没有,这提醒我们这是复利效应而不是费用。
大额、长期,复利占主导
- 每期利率 0.58333%,共 600 期。
- 年金现值:100,000 × 166.20 = 16,619,896.78。
- 年金终值:100,000 × 5,448.07 = 544,807,091.51。
- 付款总额:100,000 × 600 = 60,000,000。
- 比值:544,807,091.51 ÷ 16,619,896.78 = 32.78,也就是 1.0058333⁶⁰⁰。
六千万付进去,期末变成五亿四千四百万,几十年下来这个比值能到 32.78。现值那一列讲的是另一半故事:一千六百六十万,这个承诺值不到最终过手金额的三成,因为五十年表上靠后的那些付款折回来几乎等于零。两个数都是对的,而一页同时印两个比只印一个更有用,原因就是这个缺口本身就是题目。
局限
每期付款额是等额的,利率整段固定。随通胀逐年上调的、随市场收益浮动的、或者中途停掉的现金流,两个式子都不适用;那些要一年一年排下来算,不是一个闭式能表达的。 利率是名义的,且按付款频率计息。只改频率、利率不动,默认那组输入上答案就差了两成以上——按年那一档是 20,497.75,按月那一档是 260,463.33。用另一种计息口径报出来的利率是另一个利率,本页不替你换算。 不计费用、税费与通货膨胀。付款本身是精确的:120,000 就是 120,000。但它的价值是名义值,所以今天那 64,491 之所以是今天的钱,只是因为它没有按将来能买到什么做过调整。 没有 mode 选择器,所以本页永远把每期付款额当输入、把两个价值当结果。由一笔本金反求每期付款额是另一个问题,它有自己的页面,而不是本页上的一个开关——一个会静默忽略某个输入框的模式,比多访问一次页面更糟。 年利率在 −100% 及以下会被拒绝,下限是 −99.9%,在这一档同一串付款的现值会变成一个天文数字。那是负利率下贴现的数学,不是缺陷,但这不是现实输入,现值那一列一旦爆掉,最好把它读成一个警告信号。 两个价值之间不存在任何评价意义上的比较。同一串付款的现值 64,491 与终值 260,463 不是两个可以二选一的报价,而是同一份安排站在两个不同日期上的样子。
常见问题
- 这个年金计算器比只算单侧的页面多给了什么?
- 两个答案一起给。年金现值与年金终值是同一串付款站在两个日期上的样子,各有一个页面只报其中一个。本页用同一组五个输入把两个都报出来,再加上付款总额——那一格完全不看利率。把 120,000、64,491.25 与 260,463.33 摆在同一屏上,它们之间的关系才是看得见的,而不是要你相信的。
- 为什么年金终值比年金现值大这么多?
- 因为它们是同一笔钱在两个日期上的样子,差别全在时间。按 7% 按月复利滚 20 年,一元会变成 4.0387 元,于是今天值 64,491 的那笔钱,到期末值 260,463。两个数都不是费用、不是收益、也不是算错——它们是同一份承诺的两个有效价格,只说其中一个而不说它对应哪个日期,那个数就没有意义。
- 我知道一笔本金,能不能反过来求每期付款额?
- 本页不行,而且是有意不行的:这里每期付款额是输入而不是未知数。让用户切换「求哪一个」的页面必须把两组输入同时显示出来,而当前正被求解的那一格会变成一个改了没反应的输入框。由本金求每期付款额有它自己的页面,而且比一个模式开关走得更远——它还报给付率,以及累计到手金额里有多少来自收益。
- 每期期初付款还是期末付款,差别大吗?
- 两个价值都变,变的幅度完全一样,都是 0.583% 即一期的利息,而且两个方向上比值相同。这正是这两个数其实是同一个东西的两种看法的标志:如果一项调整让它们涨的幅度不同,那它们说的就是不同的两串付款。付款总额 120,000 完全不动——时点决定这串付款值多少,不决定它里面有多少钱。
- 为什么改付款频率会让答案差这么多?
- 因为利率是名义的,按你选的频率计息。同一个 7% 一年计一次息,二十年滚出来的比一年计十二次息要少,而差得不小——每月 500 的两档是 20,497.75 对 260,463.33,尽管两档的付款总额本身也不同。读任何一个报出来的年利率,诚实的问法是问它按什么频率计息,因为一个不带频率的名义利率只是半个利率。
- 利率是 0 的时候会怎样?
- 三个数变成同一个,默认那组输入上是 120,000。没有可折掉的、也没有可滚出来的,现值与终值就都只是付款之和。还值得知道的是这一档也是闭式写法最先崩的地方:利率为零时系数是 0 ÷ 0,不单独处理就会印出 NaN。本页背后的内核把它当成一个分支。
参考资料
- 26 CFR 20.2031-7(d)(2)(iv)(A)、(B):美国规定年金系数本身怎么算——用 1.000000 减去定期剩余系数再除以利率,并在按月末、季末付款时再乘一个调整因子 — 美国国税局(IRS)法规,经《联邦法规汇编》电子版(Electronic Code of Federal Regulations)发布,2026 年现行
- 《企业年金办法》第二十四条:职工达到国家规定的退休年龄时「可以从本人企业年金个人账户中按月、分次或者一次性领取企业年金」——它规定的是能不能领、按什么方式领,不给折算公式,所以本页两边的算式是同一个 — 中国政府网《国务院公报》2018 年第 10 号(中国)
- 什么是利息和利率?——中国人民银行湖北省分行:以 100 元、5%、两年为例说明单利得 110 元、复利得 110.25 元,差额来自利息也要计息 — 中国人民银行湖北省分行(中国)