使用方法
- 在「剩余本金 b」填还剩多少没还(默认 220000,单位元,必须是正数)。逾期罚息、提前还款后的余额都可以填进来。
- 在「年利率 r」填年化利率(默认 5.5,单位 %,例如 5.5 表示百分之五点五)。公积金与商贷组合时,先换算成年化单值再填。
- 在「月供 p」填每月还款额(默认 1800,单位元)。这是你实际每月在还的钱,必须大于每月产生的利息。
- 点「计算还清」或裸按 Enter,结果区立刻显示还清月数(保留 1 位小数)、折合年数(保留 2 位)与累计总利息。
- 点「复制结果」把本次结论存到剪贴板;「导出对照表 CSV」把 14 行月供对照下载成带 BOM 的表格,Excel 打开不乱码。
这个工具能解决什么问题
一是把「还要还多久」从感觉变成具体月数。很多房奴只知道月供,却不清楚按当前节奏还要还多少期。房贷还清计算器把剩余本金、利率、月供压成一个可比的期数,方便你规划提前还款或估算结清时点。
二是发现「月供其实在填坑」的陷阱。若月供只比每月利息高一丁点,本金偿还极慢,还清要好几十年;若月供低于利息,本金永远不动甚至越欠越多。本工具会在月供不足以覆盖利息时直接提示「永远无法还清」,避免你误以为自己正在还本金。
三是给出提前还款的量化收益。把拟提前还掉的一笔钱从本金里扣掉再算,期数和总利息会明显下降,你能直观看到「现在多还 5 万,未来少付多少利息」。这比拍脑袋决定是否提前还款靠谱得多。
本页不做这些事:不区分等额本金与等额本息两种还款方式的早期差异(本公式对应等额本息的期数反推);不计算含罚息、保险、税费的综合成本;也不预测利率未来变动。它只回答「在利率与月供不变的前提下,按当前本金还要还多少期」。
计算原理:等额本息期数公式与变量说明
核心公式:设月利率 m = r / 1200(把「年化百分比」先转成「月小数」),则还清月数 n = -ln(1 - b × m / p) / ln(1 + m)。其中 b 是剩余本金,r 是年化利率(%),p 是月供。这个公式来自等额本息「每月还款额固定」的现值求和,对 n 反解得到。
为什么用对数:等额本息每期还款 p 的现值之和等于本金 b,写成求和式后用等比数列求和,再对 n 取对数即可得到闭式解。页面用 JavaScript 的 Math.log 直接算,避免迭代逼近,结果稳定且瞬间出值。
总利息怎么来:在 n 为有限值时,总还款是 p × n,减去本金 b 就是总利息,即 总利息 = p × n - b。例如默认示例算出 n ≈ 179.6,则总利息 ≈ 1800 × 179.6 - 220000 ≈ 103190 元。
失效条件:当 p ≤ b × m(月供不超过每月利息)时,分母里的 1 - b×m/p 会变成 0 或负数,对负数取对数无意义,也对应「本金永远还不清」的现实。此时页面不去算一个天马行空的期数,而是明确提示永远无法还清。
完整示例(默认输入实测)
示例条件与页面默认值完全一致:剩余本金 b = 220000 元,年利率 r = 5.5%,月供 p = 1800 元。逐项核对:
- 月利率 m = 5.5 / 1200 = 0.0045833(即约 0.458%);
- 每月利息 = b × m = 220000 × 0.0045833 ≈ 1008.33 元,月供 1800 明显高于它,可正常还清;
- 期数 n = -ln(1 - 1008.33 / 1800) / ln(1.0045833) ≈ 179.6 个月;
- 折合年数 = 179.6 / 12 ≈ 14.96 年;
- 总利息 = 1800 × 179.6 - 220000 ≈ 103190 元。
这组数字与上方结果区、对照表首行(月供 1800 对应 179.6 个月)完全一致;把月供调到 1500,期数会大幅拉长,调到 2800 则会明显缩短,皆可在对照表里查看。
输入范围与对照表
- 剩余本金 b:1 到约 9.99 亿,必须是正数。填 0、负数、字母或非数字都会得到具体提示,页面不会静默归零。
- 年利率 r:0.01% 到 100%,正数。填成 5.5 即代表 5.5%,不要填成 0.055。
- 月供 p:1 到约 99.9 万,正数。若 p ≤ b×m,页面判定为利息都覆盖不了,直接提示永远无法还清。
- 对照表:固定本金 220000 元、年利率 5.5%,月供从 1500 到 2800、步长 100,共 14 行;前 12 行直接显示,后 2 行点「加载更多」展开,可导出 CSV 或复制 TSV。
对照表里的「总利息」是用该行的月供按前述公式算出的累计利息,直接告诉你「每月多还一点,到底能省多少年利息」,比干看月供数字更直观。
结果边界与舍入
- 月数保留 1 位小数,年数保留 2 位。真实期数往往是小数,最后一期金额会略少于整月供;页面按公式给出连续值并四舍五入展示,便于阅读。
- 月供恰好等于利息:p = b×m 时,公式分母为 0(ln(1)=0 且分子 ln(0) 无定义),属于「永远还不清」的临界,页面同样按无法还清处理。
- 利率为 0 的极端情形:若 r 极接近 0,m 趋于 0,公式趋向 n = b / p(纯本金均摊)。本页允许填入极小利率,但 0 本身会让 m=0 触发数学无意义,因此要求 r ≥ 0.01。
- 浮点误差极小,不影响结论。对数运算在双精度下稳定,期数误差远小于 0.1 个月,档位判断不受影响。
- 数值只在本地计算。整条链路只有四则运算与对数,全部在当前页面执行,没有任何网络请求,也不写 Cookie 或 localStorage。
常见问题
为什么提示「永远无法还清」?
当你的月供 p 小于或等于剩余本金按月利率产生的利息(b×m)时,每个月还的钱连利息都不够,本金丝毫不动甚至变多,数学上公式的 ln 内部出现非正数而失效。这不是程序 bug,而是真实债务陷阱的预警:请提高月供、申请展期或协商利率。
结果里的月数为什么是小数?
等额本息下,最后一期往往只需还比月供略少的金额来结清尾差,所以「还清所需期数」是连续值。页面保留 1 位小数展示,例如 179.6 个月表示第 180 期只还一小部分即结清,实际你仍按整数月操作。
总利息和「月供×月数−本金」对不上?
因为月数展示时被四舍五入到了 1 位小数,而总利息用的是未舍入的原始 n 计算(p×n−b)。用展示值 179.6 反算会差几元,属正常现象;页面结果区给出的是精确链路下的整数利息。
等额本金和等额本息能用这个算吗?
本公式反推的是「等额本息、月供固定」的还清期数。若你用的是等额本金(每月本金固定、利息递减、月供逐月下降),则不能用固定 p 直接套;请取当前实际月供或改用等额本息口径来估算。
我想算提前还款后的新期数,怎么填?
把提前还款后真正的剩余本金填进 b,再把新的月供填进 p 即可。例如原剩 220000、提前还 5 万后剩 170000,就填 b=170000,页面会给出更短的期数与更少的总利息。
公积金和商贷组合贷怎么处理?
本工具一次只接受一组本金、利率、月供。组合贷可先按各自余额与利率分别估算,或把两笔合并成「加权平均利率 + 总本金 + 总月供」后再填。注意加权只是近似,精确结清仍需分别核算。
利率填 5.5 还是 0.055?
填 5.5。本页约定 r 为百分比数值(即「百分之五点五」),内部会自动除以 1200 转成月小数。若误填 0.055,会被当成 0.055%,算出的期数会离谱地长,请确认单位。
结果会被上传或保存吗?
不会。所有计算只在你当前浏览器里完成,页面不发起任何网络请求,也不写 Cookie 或 localStorage。你在开发者工具的 Network 面板里连点几次「计算还清」,面板始终是空的。