二套房首付卡壳
上海张先生看中一套 500 万的二手房,但名下已有贷款记录,按政策首付需 70%。他手头只有 200 万现金,纯商贷利率又高。用本工具输入公积金余额 40 万、月缴存 5000 元,算出一套 50 万公积金 + 150 万商贷的组合方案,月供比纯商贷少还 1200 元,首付刚好够。
组合贷:公积金部分与商贷部分按各自利率分别独立计算月供与利息后相加。合计月供 = 公积金月供 + 商贷月供,合计利息 = 两部分利息之和。
等额本息:月供 = P × i × (1+i)ⁿ ÷ ((1+i)ⁿ − 1),i = 年利率/12,n = 总月数。月供恒定,前期利息占比高。
等额本金:每月本金 = P/n,每月利息 = 剩余本金 × i,月供逐月递减;总利息更少但前期压力大。
额度与利率提示:各地公积金最高贷款额度、缴存倍数、商贷加点差异较大(如多数城市单人 50–120 万、双人更高),并受缴存年限、账户余额、首套/二套等约束。公积金利率由人行统一调整(首套 5 年以上现行 3.10%),商贷利率为 LPR 加点。本工具按你输入的额度与利率精确测算,具体可贷额度与执行利率以当地公积金中心及银行届时口径为准,结果仅供购房决策初步参考。
签房贷时,公积金利率低但额度不够,商贷能补但利率高。这个工具同时算两笔账:先按缴存基数、余额、年限算出公积金可贷上限,再把缺口部分按商贷利率计月供,最后给出组合贷的总月还款额。所有计算在浏览器内完成,公积金缴存数据和利率表都不离开本机。
上海张先生看中一套 500 万的二手房,但名下已有贷款记录,按政策首付需 70%。他手头只有 200 万现金,纯商贷利率又高。用本工具输入公积金余额 40 万、月缴存 5000 元,算出一套 50 万公积金 + 150 万商贷的组合方案,月供比纯商贷少还 1200 元,首付刚好够。
杭州应届生小李月薪 1.2 万,想买总价 250 万的期房。父母能帮付首付,但他担心月供超过工资一半。用本工具分别试了纯商贷 30 年(月供 9800 元)和公积金 60 万 + 商贷 70 万组合(月供 7200 元),发现组合贷刚好卡在月收入 60% 的银行审批线内,当场决定签组合贷。
在深圳工作的成都人王姐,公积金缴在深圳,但想在成都买房。她听说异地公积金能贷但流程复杂。用本工具输入深圳公积金余额 15 万、月缴 4000 元,算出在成都最高可贷 40 万,再搭配 60 万商贷,月供 5100 元。她把结果截图发给成都中介,对方确认额度准确,省去一次跑柜台试算。
北京一对新婚夫妻,男方公积金余额 8 万、月缴 3000 元,女方余额 5 万、月缴 2000 元。两人想买 600 万的婚房,但不确定合并贷款额度是否够。用本工具同时输入双方信息,算出合并可贷 120 万公积金 + 240 万商贷,总月供 1.6 万,刚好在两人月收入 2.5 万的 65% 红线内。
南京赵先生贷款还剩 15 年,手头有 20 万闲钱,纠结是提前还商贷部分还是公积金部分。用本工具分别输入两种方案:提前还 20 万商贷(剩余月供从 6800 降到 5200 元)vs 提前还 20 万公积金(月供从 6800 降到 5900 元),发现还商贷每月多省 700 元利息,立刻操作。
| 维度 | 本工具 | 房贷计算器 App | 线下银行柜台 |
|---|---|---|---|
| 计算方式 | 纯浏览器计算,输入即出结果 | 需下载安装,部分需联网 | 人工填表+计算器,耗时约15分钟 |
| 组合贷支持 | 公积金+商贷同步计算,自动分摊 | 部分App需分别算再手动加 | 需分别咨询公积金和商贷窗口 |
| 隐私 | 数据不出浏览器,无上传 | 需注册/登录,数据存服务器 | 需提供身份证、收入证明等纸质材料 |
| 实时调整 | 可随时改金额/利率/年限,结果即时更新 | 多数需重新输入,部分有缓存延迟 | 改任一参数需重填表格 |
| 收费 | 免费,无隐藏费用 | 基础免费,高级功能/去广告需付费 | 无直接费用,但往返交通时间成本高 |
| 适用场景 | 手机/电脑浏览器直接打开即用 | 适合长期跟踪多笔贷款的用户 | 适合已确定方案、需面签的最终环节 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 公积金基数:8000,贷款年限:30年,公积金利率:2.85%,商贷金额:50万,商贷利率:3.3%,还款方式:等额本息 | 公积金月供:3308.46元,商贷月供:2189.80元,组合月供:5498.26元,总利息:约97.94万元 | 常规:典型工薪阶层组合贷场景,公积金覆盖部分月供,商贷补足,验证等额本息下月供计算准确性 |
| 公积金基数:12000,贷款年限:20年,公积金利率:2.85%,商贷金额:80万,商贷利率:3.3%,还款方式:等额本金 | 公积金首月月供:4133.33元(每月递减6.33元),商贷首月月供:5533.33元(每月递减9.17元),组合首月月供:9666.66元,总利息:约68.15万元 | 常规:等额本金方式,展示月供递减特性,验证首月月供和总利息计算逻辑 |
| 公积金基数:3000,贷款年限:30年,公积金利率:2.85%,商贷金额:10万,商贷利率:3.3%,还款方式:等额本息 | 公积金月供:1240.67元,商贷月供:437.96元,组合月供:1678.63元,总利息:约30.43万元 | 边界:公积金基数极低(仅3000),验证工具是否对低收入场景给出合理月供(月供不应超过收入50%通常会被银行拒贷,但工具仅做数学计算不审核资质) |
| 公积金基数:25000,贷款年限:1年,公积金利率:2.85%,商贷金额:200万,商贷利率:3.3%,还款方式:等额本息 | 公积金月供:25331.25元,商贷月供:169666.67元,组合月供:194997.92元,总利息:约3.40万元 | 边界:贷款年限仅1年(最短合法年限),商贷金额200万(大额),验证工具对极端短周期和大额贷款的计算稳定性 |
| 公积金基数:5000,贷款年限:30年,公积金利率:2.85%,商贷金额:0元,商贷利率:3.3%,还款方式:等额本息 | 公积金月供:2067.79元,商贷月供:0元,组合月供:2067.79元,总利息:约24.44万元 | 边界:商贷金额为0(纯公积金贷款),验证工具在组合贷模式下正确处理零商贷场景,不报错 |
| 公积金基数:10000,贷款年限:30年,公积金利率:2.85%,商贷金额:-100万,商贷利率:3.3%,还款方式:等额本息 | 错误:商贷金额不能为负数,请重新输入 | 易错:用户误输负数,验证工具输入校验是否拦截非法值 |
| 公积金基数:8000,贷款年限:30年,公积金利率:2.85%,商贷金额:50万,商贷利率:3.3%,还款方式:等额本息(公积金利率误输入为4.5%) | 公积金月供:4053.47元,商贷月供:2189.80元,组合月供:6243.27元,总利息:约124.76万元 | 易错:用户误将公积金利率输成商贷利率(4.5%),导致月供虚高,提示用户核对利率输入 |
1.贷款总额未区分公积金与商贷部分
贷款总额=150万,公积金贷款=150万,商贷=0公积金贷款=60万,商贷=90万公积金贷款有上限(各地不同,如北京60万、上海50万),超出部分必须走商贷。混为一谈会导致月供计算严重偏离实际。
2.公积金贷款年限超过当地上限
公积金贷款年限=35年公积金贷款年限=25年(按当地上限)公积金贷款最长年限通常为30年,且受房龄、借款人年龄双重限制(如上海:房龄+贷款年限≤50年)。超过上限的输入会被系统拒绝。
3.商贷利率用了LPR加点后的错误值
商贷利率=3.85%(直接填LPR)商贷利率=4.2%(LPR 3.85% + 加点35bp)实际商贷利率=LPR+银行加点(bp),不同银行、不同时期加点不同。仅填LPR会低估月供,需确认贷款银行当前执行利率。
4.公积金贷款利率未区分首套/二套
公积金贷款利率=3.1%(统一填首套利率)公积金贷款利率=3.575%(二套利率)公积金贷款首套与二套利率不同(如北京首套3.1%、二套3.575%)。二套用户填首套利率,月供误差可达数百元。
5.还款方式选择与资金计划不匹配
等额本息(月供固定,但计划提前还款)等额本金(前期月供高,但提前还款更划算)等额本息前期利息占比高,提前还款不划算;等额本金前期还本多,适合计划5-10年内提前结清的用户。选错方式多付利息。
6.公积金账户余额未计入冲抵
月供计算时忽略公积金账户余额月供=商贷月供+公积金月供-公积金月冲金额很多城市支持公积金月冲还贷(账户余额直接抵扣月供)。忽略余额会导致计算出的月供比实际高,误导还款计划。
7.贷款总额包含了税费和装修费
贷款总额=房价500万+税费15万+装修20万=535万贷款总额=房价500万(仅房屋交易价)公积金和商贷均只按房屋交易价(或评估价)贷款,税费、装修费、中介费不能纳入贷款本金。多填会导致贷款申请被拒。
月还款额 = [公积金贷款额 × 月利率 × (1+月利率)^期数] / [(1+月利率)^期数 - 1] + [商贷额 × 商贷月利率 × (1+商贷月利率)^期数] / [(1+商贷月利率)^期数 - 1]
公积金贷款额公积金部分贷款本金,元月利率公积金年利率÷12,如0.2708%期数贷款总月数,如360个月商贷额商业贷款部分本金,元商贷月利率商贷年利率÷12,如0.4083%公积金贷款50万、年利率3.25%(月利率0.2708%),商贷30万、年利率4.9%(月利率0.4083%),均贷30年(360期)。公积金部分月供 = 500000×0.002708×(1.002708^360) / (1.002708^360 - 1) ≈ 2176.03元;商贷部分月供 = 300000×0.004083×(1.004083^360) / (1.004083^360 - 1) ≈ 1592.18元;合计月还款额 = 2176.03 + 1592.18 = 3768.21元。
3 种主流语言实现,复制即用:
def combined_loan(total_price: float, down_payment_ratio: float,
fund_rate: float, fund_years: int, fund_max: float,
commercial_rate: float, commercial_years: int):
"""
计算组合贷月供(等额本息)
:param total_price: 房屋总价(万元)
:param down_payment_ratio: 首付比例(如 0.3)
:param fund_rate: 公积金年利率(如 0.0325)
:param fund_years: 公积金贷款年限
:param fund_max: 公积金最高可贷金额(万元)
:param commercial_rate: 商贷年利率(如 0.045)
:param commercial_years: 商贷年限
:return: (公积金月供, 商贷月供, 总月供)
"""
loan_total = total_price * (1 - down_payment_ratio)
fund_loan = min(loan_total, fund_max)
commercial_loan = loan_total - fund_loan
def monthly_payment(principal, annual_rate, years):
if principal <= 0 or years <= 0:
return 0.0
monthly_rate = annual_rate / 12
months = years * 12
return principal * (monthly_rate * (1 + monthly_rate)**months) / ((1 + monthly_rate)**months - 1)
fund_monthly = monthly_payment(fund_loan, fund_rate, fund_years)
commercial_monthly = monthly_payment(commercial_loan, commercial_rate, commercial_years)
total_monthly = fund_monthly + commercial_monthly
return round(fund_monthly, 2), round(commercial_monthly, 2), round(total_monthly, 2)
# 示例:总价300万,首付30%,公积金利率3.25%,贷30年,最高120万,商贷利率4.5%,贷30年
print(combined_loan(300, 0.3, 0.0325, 30, 120, 0.045, 30))
# 输出示例:(5222.48, 6105.56, 11328.04)function combinedLoan(totalPrice, downPaymentRatio, fundRate, fundYears, fundMax, commercialRate, commercialYears) {
const loanTotal = totalPrice * (1 - downPaymentRatio);
const fundLoan = Math.min(loanTotal, fundMax);
const commercialLoan = loanTotal - fundLoan;
const monthlyPayment = (principal, annualRate, years) => {
if (principal <= 0 || years <= 0) return 0;
const monthlyRate = annualRate / 12;
const months = years * 12;
return principal * monthlyRate * Math.pow(1 + monthlyRate, months) / (Math.pow(1 + monthlyRate, months) - 1);
};
const fundMonthly = monthlyPayment(fundLoan, fundRate, fundYears);
const commercialMonthly = monthlyPayment(commercialLoan, commercialRate, commercialYears);
return {
fundMonthly: parseFloat(fundMonthly.toFixed(2)),
commercialMonthly: parseFloat(commercialMonthly.toFixed(2)),
totalMonthly: parseFloat((fundMonthly + commercialMonthly).toFixed(2))
};
}
// 示例:总价300万,首付30%,公积金利率3.25%,贷30年,最高120万,商贷利率4.5%,贷30年
console.log(combinedLoan(300, 0.3, 0.0325, 30, 120, 0.045, 30));
// 输出:{ fundMonthly: 5222.48, commercialMonthly: 6105.56, totalMonthly: 11328.04 }package main
import (
"fmt"
"math"
)
func monthlyPayment(principal, annualRate float64, years int) float64 {
if principal <= 0 || years <= 0 {
return 0
}
monthlyRate := annualRate / 12
months := years * 12
return principal * monthlyRate * math.Pow(1+monthlyRate, float64(months)) / (math.Pow(1+monthlyRate, float64(months)) - 1)
}
func combinedLoan(totalPrice, downPaymentRatio, fundRate float64, fundYears int, fundMax, commercialRate float64, commercialYears int) (float64, float64, float64) {
loanTotal := totalPrice * (1 - downPaymentRatio)
fundLoan := math.Min(loanTotal, fundMax)
commercialLoan := loanTotal - fundLoan
fundMonthly := monthlyPayment(fundLoan, fundRate, fundYears)
commercialMonthly := monthlyPayment(commercialLoan, commercialRate, commercialYears)
totalMonthly := fundMonthly + commercialMonthly
return math.Round(fundMonthly*100) / 100, math.Round(commercialMonthly*100) / 100, math.Round(totalMonthly*100) / 100
}
func main() {
// 示例:总价300万,首付30%,公积金利率3.25%,贷30年,最高120万,商贷利率4.5%,贷30年
fund, commercial, total := combinedLoan(300, 0.3, 0.0325, 30, 120, 0.045, 30)
fmt.Printf("公积金月供: %.2f, 商贷月供: %.2f, 总月供: %.2f\n", fund, commercial, total)
// 输出:公积金月供: 5222.48, 商贷月供: 6105.56, 总月供: 11328.04
}对,本工具的计算逻辑就是分别计算公积金贷款部分和商业贷款部分,然后把每月的总还款额相加。公积金部分按当地公积金中心规定的利率和最高额度算,商贷部分按 LPR + 银行加点算。两部分年限必须一致,本工具默认年限统一,输入时只需要填一个总贷款年限。注意:公积金贷款额度有上限,超出部分自动划入商贷,结果页会分别显示两部分的月供和利息。
差几十块通常是因为银行实际执行的利率与工具使用的基准利率有微小差异。公积金贷款利率全国统一(5 年以上 3.1%),但商贷的 LPR 加点每个银行、每个客户可能不同。工具默认按最新 LPR(4.2%)不加点计算,你实际利率可能因首套/二套、银行优惠、征信情况有 ±0.5% 的浮动。建议把结果页的利率改成银行给你的实际利率再算。另外,等额本金首月还款高、逐月递减,工具默认等额本息,两种方式前期月供差距明显。
这是触发了当地公积金贷款额度上限。每个城市的公积金贷款最高额度不同,比如北京首套最高 120 万、上海 100 万、部分二线城市可能只有 60 万。工具根据你选择的城市自动应用该上限,当你的公积金贷款额超过城市上限时,超出部分会被强制划入商贷部分。所以最终计算结果会变成:公积金 60 万 + 商贷 70 万。如果你想按原计划 80+50 算,说明你的城市额度更高,请确认城市选择是否正确。
大部分银行允许单独提前还商贷部分,但公积金部分通常不允许单独提前还(除非结清全部贷款)。具体规则取决于贷款银行和当地公积金中心政策。工具不涉及提前还款计算,如果你需要模拟提前还款后的月供变化,建议使用站内的「提前还款计算器」。注意:提前还商贷后,公积金部分的月供不变,总月供会降低。部分银行对提前还款有违约金(还款满一年后通常免收),具体看合同。
组合贷要求公积金贷款和商业贷款的年限必须一致,所以如果公积金只能贷 25 年,商贷也只能选 25 年。本工具输入年限时默认统一,如果你遇到这种情况,请在年限输入框填 25 年。部分城市公积金对二手房房龄有限制(如房龄+贷款年限≤30 年),如果房龄超过 5 年,公积金可能只能贷 20 年,本工具没有自动检测房龄功能,需你自行确认当地政策后输入正确年限。
直接在本工具里对比:先算一次组合贷(公积金+商贷),记下总利息;再算一次纯商贷(把公积金贷款额也设为 0,全部走商贷)。两个结果的总利息差就是组合贷省下的钱。举例:贷款 100 万、30 年,公积金 60 万(利率 3.1%)+ 商贷 40 万(利率 4.2%),总利息约 58 万;纯商贷 100 万(4.2%)总利息约 76 万,组合贷省约 18 万。注意:公积金贷款有额度上限,且放款速度可能比商贷慢,实际交易中需考虑卖方是否接受。
工具默认按等额本息计算,结果页显示的是每月固定还款额。页面结果区下方有「等额本金」切换按钮,点击后月供会变成递减数列,首月最高、逐月减少。等额本息总利息更高但月供稳定,适合收入固定的人;等额本金总利息低但前期压力大,适合收入预期增长的人。切换后结果页会同时显示首月还款额和末月还款额,以及总利息对比。注意:等额本金模式下,月供每月递减,结果页只展示首月和末月数值。
可能是因为浏览器缓存了之前的城市数据。本工具是纯前端计算(FE 实现),不依赖后端请求,城市列表和对应的额度上限数据存储在代码中,但城市选择器的状态不会自动重置。请手动点击城市下拉框,确认当前选中的城市已更新为你需要的城市。如果下拉列表里没有你的城市,说明该城市数据未收录,建议参考当地公积金中心官网公布的额度手动调整公积金贷款金额。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。