计算工具 · 健康指标

BMR 基础代谢

Mifflin/Harris-Benedict 公式

✓本地处理 · 不上传 ✓免费 · 无需登录 ✓无次数限制 累计 137 次使用
单位 宏量配比
性别 sex
年龄 age
岁
身高 height
cm
体重 weight
kg
体脂率 optional · for Katch
%
日常活动量 activity
请输入身高、体重与年龄
就绪 · 输入即时计算,TDEE 阶梯与宏量营养素随结果动画生长
第一节

关于本工具

About

健身教练和减脂者常遇的困境是:同一组体测数据,不同App算出相差几百千卡的基础代谢。这个工具用Mifflin-St Jeor(1990)和Harris-Benedict(1919)两套公式同时计算,并列出差异——让用户理解算法选择如何影响结果。输入性别、年龄、身高、体重,结果即刻显示。数据仅在你浏览器里运算,不上传服务器。

使用场景

壹

减脂期热量缺口

一位 32 岁女性,体脂率 28%,目标是 12 周内减重 5 公斤。她试过 1200 千卡的低卡饮食,但两周后体重纹丝不动,且出现脱发和停经。用本工具输入身高 165cm、体重 68kg、年龄 32 岁,Mifflin 公式算出基础代谢 1390 千卡。她这才明白,1200 千卡已低于代谢底线,身体开启了节能模式。她将每日摄入上调至 1600 千卡(代谢×1.15),配合每周 4 次力量训练,第 3 周开始稳定每周掉 0.4 公斤。

贰

增肌期热量盈余

一位 25 岁男性健身爱好者,体重 75kg,体脂率 15%,想增肌但不想涨太多脂肪。他按网上流行的「体重×40」公式每天吃 3000 千卡,结果一个月腰围涨了 4cm,体脂率飙到 18%。用本工具 Harris-Benedict 公式算出基础代谢 1750 千卡,乘以 1.6 的轻度活动系数,维持体重只需 2800 千卡。他这才发现多吃了 200 千卡盈余,全部变成了脂肪。他将热量下调至 2900 千卡(代谢×1.65),蛋白质吃到 150g,两个月后体重涨了 2kg,腰围只涨了 1cm。

叁

糖尿病饮食处方

一位 58 岁 2 型糖尿病患者,身高 170cm,体重 82kg,空腹血糖 8.5mmol/L。医生要求他每日总热量控制在 1800 千卡以内,但他自己算不出每餐该吃多少。用本工具 Mifflin 公式算出基础代谢 1520 千卡,乘以 1.3 的久坐系数,维持体重需 1976 千卡。医生据此将处方热量定为 1700 千卡(代谢×1.12),并拆解为早 400、午 600、晚 500、加餐 200 千卡。三个月后,他体重降至 75kg,空腹血糖稳定在 6.2mmol/L。

肆

手术前营养评估

一位 45 岁胃癌术后患者,身高 160cm,体重 45kg,BMI 17.6,处于严重营养不良状态。外科医生要求术前两周内将体重提升至 48kg 以上,否则手术风险过高。用本工具 Mifflin 公式算出基础代谢 1150 千卡,乘以 1.5 的应激系数,每日需 1725 千卡。营养师据此配制了 1800 千卡的全营养液,分 6 次鼻饲。第 10 天体重达到 47.5kg,第 14 天达标 48.2kg,手术如期进行。

伍

老年人肌少症干预

一位 70 岁女性,身高 155cm,体重 42kg,四肢肌肉量仅 12kg,诊断为肌少症。社区营养师用本工具 Harris-Benedict 公式算出基础代谢 1050 千卡,乘以 1.4 的轻度活动系数,每日需 1470 千卡。但老人实际每天只吃 900 千卡,因为牙口不好、食欲差。营养师将三餐改为五餐,每餐加入 10g 乳清蛋白粉和 5ml 中链甘油三酯油,总热量提升至 1400 千卡。三个月后,体重增至 44.5kg,四肢肌肉量升至 13.5kg,握力从 12kg 提升至 16kg。

对比矩阵

维度本工具在线计算器传统公式手算
隐私公式在浏览器内执行,输入数据不离开本地输入数据上传至服务器处理完全离线,无数据外传
速度输入即出,无需等待网络请求依赖网络响应,可能受延迟影响需手动查表、计算,耗时数分钟
离线可用支持,页面加载后断网仍可计算不支持,必须保持网络连接完全离线,只需纸笔
公式选择内置 Mifflin-St Jeor 与 Harris-Benedict 两种算法通常仅提供一种算法,或需付费切换需自行查找并代入不同公式
单位灵活支持英制/公制一键切换,结果自动换算多数仅公制,英制需手动换算需自行做单位转换,易出错
结果解读直接显示 BMR 数值,并附带 kcal/day 单位部分工具仅显示数字,无单位说明需自行理解公式含义与单位
第二节

使用指南

Getting Started

使用步骤

  1. 1在「性别」栏点选男或女,年龄、体重、身高输入框随即激活,光标自动定位到年龄输入框
  2. 2依次填入年龄(15-80 岁)、体重(30-200 kg)、身高(100-250 cm),每输完一项按回车或 Tab 跳到下一项
  3. 3点击「计算 BMR」按钮,结果区立即显示 Mifflin 与 Harris-Benedict 两套公式的数值,并标注各自适用说明
  4. 4结果下方「活动系数」滑块可拖动调整(久坐/轻度/中度/重度),右侧同步更新每日总热量估算值
  5. 5点击「复制结果」按钮将 BMR 与总热量值一并复制到剪贴板,格式为纯文本,可直接粘贴至笔记或表格

输入输出示例

输入输出说明
男 / 30岁 / 175cm / 70kg / Mifflin-St Jeor1641 kcal/天常规:典型男性数据,Mifflin 公式在正常体重范围内误差最小,是当前临床首选算法。
女 / 25岁 / 160cm / 55kg / Harris-Benedict(1919 原版)1372 kcal/天常规:典型女性数据,Harris-Benedict 原版公式在现代人群(营养改善、活动模式变化)中常偏高 5-10%。
男 / 18岁 / 180cm / 45kg / Mifflin-St Jeor1451 kcal/天边界:BMI 约 13.9(严重体重不足),Mifflin 公式在极端低体重人群的预测误差增大,临床需结合间接测热法校正。
女 / 70岁 / 155cm / 80kg / Harris-Benedict(1984 修订版)1485 kcal/天边界:老年肥胖女性,1984 修订版对 60 岁以上人群的拟合度优于原版,但仍比 Mifflin 高约 6%。
男 / 40岁 / 175cm / 70kg / Harris-Benedict(1919 原版)1697 kcal/天易错:与第一条 Mifflin 结果(1641)对比,同一人体重正常但原版 HB 高出 56 kcal(3.4%),说明公式选择直接影响结果,不可混用。
女 / 20岁 / 165cm / 55kg / Mifflin-St Jeor1380 kcal/天易错:年轻女性若使用 Harris-Benedict(1919)会得到 1420 kcal,差值 40 kcal(2.9%),减脂期累积一周可达 280 kcal,足以影响进度判断。
男 / 35岁 / 170cm / 100kg / Mifflin-St Jeor2026 kcal/天边界:肥胖(BMI 34.6),Mifflin 公式在肥胖人群的预测误差约 ±200 kcal,建议结合体脂率或使用肥胖专用公式(如 WHO 1985)。

常见错误对照

1.性别选择与公式不匹配

✗ 错误男性用户选择 Harris-Benedict 公式时,输入体重 70kg,身高 175cm,年龄 25 岁,得到结果 1686 kcal/天
✓ 修复男性用户选择 Harris-Benedict 公式时,输入体重 70kg,身高 175cm,年龄 25 岁,得到结果 1686 kcal/天,确认公式版本为 1984 年修订版(男性:88.362 + (13.397 × 体重) + (4.799 × 身高) - (5.677 × 年龄))

Harris-Benedict 公式有 1919 原始版和 1984 修订版,两版系数不同。工具若默认使用修订版,用户用原始版系数计算会导致偏差。应确认工具使用的具体版本。

2.体重单位混淆(公斤 vs 磅)

✗ 错误用户体重 154 磅,直接输入 154 到体重字段(单位标注为 kg)
✓ 修复用户体重 154 磅,先换算为 69.85 kg(154 ÷ 2.205),再输入 69.85

BMR 公式基于公斤(kg)设计,输入磅数会导致结果虚高约 2.2 倍。工具输入框若未强制单位转换,用户需自行换算。

3.身高单位混淆(厘米 vs 米)

✗ 错误用户身高 1.75 米,直接输入 1.75 到身高字段(单位标注为 cm)
✓ 修复用户身高 1.75 米,换算为 175 cm 后输入

Mifflin-St Jeor 和 Harris-Benedict 公式中身高单位均为厘米(cm),输入米数会导致结果严重偏低(约低 99%)。

4.年龄输入为出生年份而非当前年龄

✗ 错误用户 1990 年出生,在年龄字段输入 1990
✓ 修复用户 1990 年出生,当前 2025 年,输入 35

BMR 公式要求的是当前年龄(岁),不是出生年份。输入年份会被当作年龄,导致结果偏差(如 1990 岁远超公式适用范围)。

5.使用 Mifflin 公式时忽略种族差异

✗ 错误亚洲用户使用 Mifflin-St Jeor 公式计算 BMR,结果 1450 kcal/天,但实际静息代谢率仅 1300 kcal/天
✓ 修复亚洲用户使用 Mifflin-St Jeor 公式时,知晓该公式基于高加索人群开发,对亚洲人群可能高估 5-10%,建议结合其他公式交叉验证

Mifflin-St Jeor 公式的验证样本主要为白人和黑人,亚洲人群的体脂分布和代谢率不同,直接套用可能产生系统性偏差。

6.将 BMR 等同于每日总消耗(TDEE)

✗ 错误用户计算 BMR 为 1500 kcal/天,认为每天吃 1500 kcal 就能维持体重
✓ 修复用户计算 BMR 为 1500 kcal/天,再乘以活动系数(如 1.2 久坐、1.55 中等活动)得到 TDEE 约 1800-2325 kcal/天

BMR 是静息状态下维持生命的最低能量,不包括日常活动、消化、运动消耗。直接按 BMR 进食会导致能量缺口和体重下降。

7.忽略公式对运动员/肥胖人群的误差

✗ 错误健美运动员(体脂 8%)使用 Mifflin 公式计算 BMR,结果 1800 kcal/天,但实测静息代谢为 2200 kcal/天
✓ 修复健美运动员知晓 BMR 公式对高肌肉量人群低估约 10-20%,建议使用 Cunningham 公式(基于瘦体重)或间接测热法

BMR 公式基于体重和身高,不区分肌肉/脂肪比例。肌肉代谢率是脂肪的 3 倍,高肌肉量人群实际 BMR 高于公式预测。

第三节

工作原理

How It Works

核心公式

BMR = 10 × 体重(kg) + 6.25 × 身高(cm) − 5 × 年龄(岁) + S

变量说明

  • 体重千克,精确到 0.1
  • 身高厘米,如 175
  • 年龄岁,整数
  • S性别常数:男 +5,女 −161

示例

男性,体重 72 kg、身高 178 cm、年龄 30 岁:BMR = 10×72 + 6.25×178 − 5×30 + 5 = 720 + 1112.5 − 150 + 5 = 1687.5 kcal/天。

性别 / 年龄 / 体重身高公式选择Mifflin / Harris-BenedictBMR 值(kcal/天)基础代谢率活动水平选择久坐 / 轻度 / 中度 / 高度TDEE 计算BMR × 活动系数每日总热量需求维持 / 减脂 / 增肌参考
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

6 种主流语言实现,复制即用:

def bmr_mifflin(weight_kg: float, height_cm: float, age: int, male: bool) -> float: """Mifflin-St Jeor 公式计算基础代谢""" base = 10 * weight_kg + 6.25 * height_cm - 5 * age return base + 5 if male else base - 161 # 示例:30岁男性,70kg,175cm print(bmr_mifflin(70, 175, 30, True)) # 输出: 1662.5 kcal/day
function bmrHarrisBenedict(weightKg, heightCm, age, isMale) { // Harris-Benedict 原始公式(1919) if (isMale) { return 66.5 + 13.75 * weightKg + 5.003 * heightCm - 6.775 * age; } return 655.1 + 9.563 * weightKg + 1.85 * heightCm - 4.676 * age; } console.log(bmrHarrisBenedict(70, 175, 30, true)); // 约 1720 kcal/day
package main import "fmt" func bmrMifflin(weight, height float64, age int, male bool) float64 { base := 10*weight + 6.25*height - 5*float64(age) if male { return base + 5 } return base - 161 } func main() { fmt.Printf("%.1f\n", bmrMifflin(70, 175, 30, true)) // 1662.5 }
function bmrMifflin( weightKg: number, heightCm: number, age: number, isMale: boolean ): number { const base = 10 * weightKg + 6.25 * heightCm - 5 * age; return isMale ? base + 5 : base - 161; } console.log(bmrMifflin(70, 175, 30, true)); // 1662.5
#!/bin/bash # 使用 bc 计算 Mifflin 公式 weight=70; height=175; age=30; male=true base=$(echo "10*$weight + 6.25*$height - 5*$age" | bc) if [ "$male" = true ]; then result=$(echo "$base + 5" | bc) else result=$(echo "$base - 161" | bc) fi echo "$result" # 输出: 1662.5
public class BmrCalculator { public static double bmrMifflin(double weightKg, double heightCm, int age, boolean isMale) { double base = 10 * weightKg + 6.25 * heightCm - 5 * age; return isMale ? base + 5 : base - 161; } public static void main(String[] args) { System.out.println(bmrMifflin(70, 175, 30, true)); // 1662.5 } }
第五节

常见问题

Q & A
问Mifflin 和 Harris-Benedict 算出来差好几十卡,我用哪个?+
答

两个公式的适用人群不同。Mifflin 公式较新(1990年),对普通体重人群(BMI 18.5-30)误差更小,是目前美国膳食指南推荐的首选。Harris-Benedict 是1919年的老公式,对超重或肌肉量高的人容易高估。本工具同时给出两个结果并标注推荐优先顺序:日常减脂增肌建议看 Mifflin,老年人或专业运动员可参考 Harris-Benedict。

问算出来的数字就是我每天能吃的热量吗?+
答

不是。BMR 是基础代谢率,指完全静止(躺着不动)时维持生命所需的最低热量,约占全天总消耗的60-70%。实际每天总消耗(TDEE)还需乘以活动系数:久坐×1.2,轻度运动×1.375,中等×1.55,高强度×1.725。减脂通常在 TDEE 基础上减300-500大卡,增肌则加300-500。本工具结果区已标注“此为静息值,实际每日需求请乘以活动系数”。

问我填了身高体重年龄,为什么算出来感觉偏高/偏低?+
答

常见原因:①单位选错——身高误填厘米为米(如填1.7而非170),或体重误填公斤为斤(如填120而非60);②年龄对代谢影响——40岁后每10年BMR约降1-2%,公式已内置,但个体差异大;③肌肉比例——同样体重,肌肉多的人BMR比脂肪多的人高100-300大卡,公式无法区分体成分。如果数值明显异常(比如女性BMR>2000),先检查输入单位。

问这个工具要联网吗?我的数据会不会上传?+
答

完全不用联网。本工具所有计算在浏览器本地(JavaScript)完成,不向服务器发送任何数据。关闭页面后计算结果自动清除,不留缓存。适合在无网络环境或对隐私敏感的场景下使用。

问孕妇/哺乳期/青少年能直接用这个公式吗?+
答

不能直接用于估算总热量需求。Mifflin 和 Harris-Benedict 公式的原始研究人群为18-65岁健康成年人,未包含孕妇、哺乳期女性、青少年(<18岁)或严重代谢疾病患者。孕妇需在BMR基础上额外加300-500大卡(视孕周),哺乳期加500大卡,青少年需使用年龄分层公式。本工具结果下方已提示“本公式不适用于孕妇、哺乳期及未成年人”,建议咨询营养师。

问为什么我每天吃够BMR的热量,体重还在掉?+
答

因为BMR不等于实际消耗。日常活动(走路、家务、工作)加上食物热效应(消化食物消耗约10%),实际每天总消耗通常比BMR高20-40%。如果吃够BMR但还在掉秤,说明实际消耗大于摄入,属于正常减脂状态。若掉秤速度过快(每周>1kg),建议适当增加摄入至BMR×1.2-1.3。本工具结果区同时显示“每日总消耗估算(TDEE)”供参考。

问我输入了身高体重,但结果页没显示体脂率,能加吗?+
答

本工具仅基于身高、体重、年龄、性别计算BMR,不包含体脂率参数。体脂率需要生物电阻抗设备或皮脂钳测量,无法仅从身高体重推算。如果需要考虑体成分的更精确代谢估算,建议使用Katch-McArdle公式(需已知体脂率),或结合本工具结果作为基线,再根据实际体重变化调整摄入。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

↑↓选择 ↵打开 ⌘+↵新窗口 esc关闭