用 AI 开发了一个房贷计算器(支持输入利率调整记录和提前还贷记录),邀请大家体验一下,欢迎提 bug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wjs9092
V2EX    分享创造

用 AI 开发了一个房贷计算器(支持输入利率调整记录和提前还贷记录),邀请大家体验一下,欢迎提 bug

  •  
  •   wjs9092 3 天前 1407 次点击
    鉴于没有找到一个符合需求的房贷计算器,用 AI 开发了一个,地址: https://calc.wjss.workers.dev/

    我的主要需求很简单,就是有一个房贷计算器,能够计算出的还款明细,与银行 App 里的还款记录一模一样。

    目前开发这个计算器基本能满足我的需求,并且补充了银行 App 里的还款明细缺少一些信息,比如:利率调整的时间点、累计支付的利息等,以及银行 App 不能模拟提前还贷以及计算节省利息等

    欢迎大家体验,默认数据是是根据拿真实案例和中国银行里的还款明细做过比对没问题。如果大家输入的案例发现有算不对的,欢迎提 bug 。希望 bug 里包含: 输入的参数,算错的地方和期望结果。
    第 1 条附言    2 天前
    目前已发现的问题:
    1. 首次还款日期不一定是起贷日期后一个月,导致后续计算都出错。后续会增加可以手动设置首次还款日期。
    2. 等额本金 以及 提前还贷选择降月供 这些路径因为缺乏测试数据没有测过,希望有测到算错的可以贴一下真实数据我晚点修。
    16 条回复    2026-01-10 23:40:42 +08:00
    wozhidaole
        1
    wozhidaole  
       3 天前
    好像有点问题,但是我不确定信息填的是不是不太对
    wozhidaole
        2
    wozhidaole  
       3 天前   1
    @wozhidaole 不知道是不是这个原因


    贷款总额 74 万
    贷款发放日 2023-08-15
    初始利率 2.85%
    26 年 1 月利率 2.6%
    贷款期限 12 年
    还款方式 等额本息


    2024/10/13
    部分还款方式
    月还款额不变,还款期限缩短
    申请提前还贷本金
    100000.0
    申请提前还贷利息
    1354.51
    申请提前还贷金额
    101354.51


    2025/03/07
    部分还款方式
    月还款额不变,还款期限缩短
    申请提前还贷本金
    10000.0
    申请提前还贷利息
    665.56
    申请提前还贷金额
    10665.56

    2025/07/03
    部分还款方式
    还款期限不变,月还款额减少
    申请提前还贷本金
    20000.0
    申请提前还贷利息
    546.78
    申请提前还贷金额
    20546.78

    2025/09/03
    部分还款方式
    还款期限不变,月还款额减少
    申请提前还贷本金
    20000.0
    申请提前还贷利息
    556.37
    申请提前还贷金额
    20556.37


    2025/12/22
    部分还款方式
    月还款额不变,还款期限缩短
    申请提前还贷本金
    12000.0
    申请提前还贷利息
    73.47
    申请提前还贷金额
    12073.47
    wozhidaole
        3
    wozhidaole  
       3 天前
    给你验证数据
    leptonk
        4
    leptonk  
       3 天前   1
    有一个问题,起贷日期和还款日期可能不是同一天,我的房贷就是,起贷是 22 号,但是还款日是 10 号,所以第一个月还款会低于月供,且每次利率变动是 22 号作为利率变化节点,前后两个月的还款额都不同。
    fengci
        5
    fengci  
       3 天前  
    期限缩短(月供基本不变) 没效果 还是按 月供递减(期限不变) 算了
    fengci
        6
    fengci  
       2 天前
    @fengci 等额本金
    japhetjiu699
        7
    japhetjiu699  
       2 天前
    兄弟,访问不了了

    wjs9092
        8
    wjs9092  
    OP
       2 天前
    @wozhidaole 初始利率应该是 3.1 (下面是 AI 倒推出来的结果)。然后确实没考虑到 起贷日 和 还贷日 不一样的情况,晚点我再更新一版支持这个功能。

    根据您提供的贷款信息和图片中的还款记录,我们可以通过数学公式进行严密的倒推。

    ### 一、 核心参数倒推过程

    #### 1. 实际执行利率倒推
    图片中第 4 行显示:**2023-10-21** 扣款利息为 **1,900.69 元**,此时的贷款余额(第 3 行显示)为 **735,751.26 元**。
    通常银行按月计息,公式为:`月利息 = 剩余本金 × 月利率`。
    * **月利率** = $1,900.69 \div 735,751.26 \approx 0.00258333$
    * **年利率** = $0.00258333 \times 12 = 3.1\%$

    **结论:** 虽然您提到的初始利率是 2.85%,但图片显示的还款记录是按 **3.1%** 的年利率执行的(可能是当时 LPR 加点后的结果)。

    #### 2. 贷款期数倒推
    我们利用等额本息首月还款本金的公式来反推总期数 $n$。
    公式:$首月本金 = \text{月供} - \text{首月正常利息} = \frac{P \cdot i}{(1+i)^n - 1}$
    其中:$P$(总额)= 740,000 ,$i$(月利率)= 0.00258333 ,图片第 3 行显示**首月本金为 4,248.74 元**。

    * $4,248.74 = \frac{740,000 \times 0.00258333}{(1.00258333)^n - 1}$
    * $(1.00258333)^n - 1 = \frac{1,911.66}{4,248.74} \approx 0.44993$
    * $(1.00258333)^n \approx 1.44993$
    * 通过对数计算:$n = \frac{\ln(1.44993)}{\ln(1.00258333)} \approx 144$

    **结论:** 贷款总期数为 **144 期**,即确认为 **12 年**。

    ---

    ### 二、 具体月供计算过程(以 3.1% 利率为例)

    #### 1. 标准月供计算(等额本息)
    公式:$M = P \times \frac{i(1+i)^n}{(1+i)^n - 1}$
    * $M = 740,000 \times \frac{0.00258333 \times (1.00258333)^{144}}{(1.00258333)^{144} - 1}$
    * $M = 740,000 \times \frac{0.00258333 \times 1.44994}{0.44994}$
    * **$M \approx 6,160.40$ 元/月**

    #### 2. 为什么图片中第一期扣款总额是 6,542.74 元?
    图片显示 2023-09-21 扣款:利息 2,294.00 + 本金 4,248.74 = **6,542.74 元**。
    这是因为您的贷款发放日是 8 月 15 日,第一次还款是 9 月 21 日,中间间隔了 **37 天**(或者银行按 360 天/年计息,足月 30 天 + 额外 6 天 = 36 天)。
    * **首月利息计算:** $740,000 \times 3.1\% \div 360 \times 36 \text{天} = 2,294.00 \text{元}$(与图片完全吻合)。
    * 所以第一期比正常月供多出了约 382 元的利息。

    ---
    wjs9092
        9
    wjs9092  
    OP
       2 天前
    @fengci 就是我缺真实测试数据,如果你有空的话可以贴一下数据,像 @wozhidaole 那样就好。有数据的话我应该能够把它调好
    wjs9092
        10
    wjs9092  
    OP
       2 天前
    @japhetjiu699 cloudflare pages 国内好戏是访问不了,你的无痕模式是不是没发翻墙
    japhetjiu699
        11
    japhetjiu699  
       2 天前
    @wjs9092 #10 现在再次访问可以了,最开始我就是没用无痕浏览器,也打不开,最后再用无痕,也打不开,可能中途你服务挂了,没开 v2 都不可以上
    wozhidaole
        12
    wozhidaole  
       2 天前
    @wjs9092 #8 初始利率确实是 3.1%
    zsuper
        13
    zsuper  
       2 天前
    看不懂是怎么用的。。。
    zsuper
        14
    zsuper  
       2 天前
    @zsuper 我刚好想提前还贷,感觉用不起来啊
    wjs9092
        15
    wjs9092  
    OP
       2 天前
    @zsuper 额,文案太难懂吗?还是什么原因?

    我觉得难的就是填 利率变动记录,自己都不一定知道什么时候新利率生效了。页面默认的案例,我也是根据真实历史每期还款明细数据去倒推出来的利率变动记录。

    比如案例数据:
    - 案例数据一开始都是固定利率 4.65
    - 后来选了利率跟随 lpr 变动之后,虽然 lpr 可能一年变化多次,但是银行只有重新定价日(一般是起贷日才会调整利率)才会进行调整 利率,所以都是每年 11 月 20 号 才会有真实的利率变化的记录。
    - 再之后又签了一个 每 3 个月 重新定价的协议,所以利率变化记录可能是每年的 11-20 、02-20 、05-20 、08-20 这 4 个日期才有可能产生利率变动记录。
    - 中间有一个特殊的是 2024-10-25 是全国统一调整存量房贷,我调整的是 lpr -30 的加点, 所以是 当时 4.2 变为 3.9

    其他 提前还款的记录就是已经提前还过的记录都需要记录上,然后想模拟的就随便加,看看模拟的这条记录可以省多少利息。大概就这样咯
    tyrad
        16
    tyrad  
       11 小时 18 分钟前
    利率是否保留两位小数了?
    比如公积金之前是 3.25*1.1(二套)是 3.575 ,而不是页面展示的 3.58...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2651 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:59 PVG 10:59 LAX 18:59 JFK 21:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86