减脂期热量缺口
一位 32 岁女性,体脂率 28%,目标是 12 周内减重 5 公斤。她试过 1200 千卡的低卡饮食,但两周后体重纹丝不动,且出现脱发和停经。用本工具输入身高 165cm、体重 68kg、年龄 32 岁,Mifflin 公式算出基础代谢 1390 千卡。她这才明白,1200 千卡已低于代谢底线,身体开启了节能模式。她将每日摄入上调至 1600 千卡(代谢×1.15),配合每周 4 次力量训练,第 3 周开始稳定每周掉 0.4 公斤。
健身教练和减脂者常遇的困境是:同一组体测数据,不同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 单位 | 部分工具仅显示数字,无单位说明 | 需自行理解公式含义与单位 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 男 / 30岁 / 175cm / 70kg / Mifflin-St Jeor | 1641 kcal/天 | 常规:典型男性数据,Mifflin 公式在正常体重范围内误差最小,是当前临床首选算法。 |
| 女 / 25岁 / 160cm / 55kg / Harris-Benedict(1919 原版) | 1372 kcal/天 | 常规:典型女性数据,Harris-Benedict 原版公式在现代人群(营养改善、活动模式变化)中常偏高 5-10%。 |
| 男 / 18岁 / 180cm / 45kg / Mifflin-St Jeor | 1451 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 Jeor | 1380 kcal/天 | 易错:年轻女性若使用 Harris-Benedict(1919)会得到 1420 kcal,差值 40 kcal(2.9%),减脂期累积一周可达 280 kcal,足以影响进度判断。 |
| 男 / 35岁 / 170cm / 100kg / Mifflin-St Jeor | 2026 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.85BMR 公式基于公斤(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 年,输入 35BMR 公式要求的是当前年龄(岁),不是出生年份。输入年份会被当作年龄,导致结果偏差(如 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 高于公式预测。
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/天。
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/dayfunction 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/daypackage 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.5public 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
}
}两个公式的适用人群不同。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不等于实际消耗。日常活动(走路、家务、工作)加上食物热效应(消化食物消耗约10%),实际每天总消耗通常比BMR高20-40%。如果吃够BMR但还在掉秤,说明实际消耗大于摄入,属于正常减脂状态。若掉秤速度过快(每周>1kg),建议适当增加摄入至BMR×1.2-1.3。本工具结果区同时显示“每日总消耗估算(TDEE)”供参考。
本工具仅基于身高、体重、年龄、性别计算BMR,不包含体脂率参数。体脂率需要生物电阻抗设备或皮脂钳测量,无法仅从身高体重推算。如果需要考虑体成分的更精确代谢估算,建议使用Katch-McArdle公式(需已知体脂率),或结合本工具结果作为基线,再根据实际体重变化调整摄入。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。