标准体重
多公式(BMI/Broca/罗氏)
BMI 双标准对比
8 种权威公式同时对比
8 档体型精细分级
多维度健康指标(体脂率 / WHR / WtHR)
基础代谢 BMR · 每日热量需求 TDEE
减脂 / 增肌 热量缺口推算
达到标准体重时间预测
儿童青少年评估(2-18 岁)
体重变化追踪
公式 · 标准 · 参考文献
· 中国营养学会:男 = 身高(cm) − 105,女 = 身高(cm) − 100。来源 中国居民膳食指南 (2022)
· 平田公式:(身高 − 100) × 0.9。日本平田秀治 1972 提出,适合东亚体型
· Broca(法国 1871):身高 − 100;改良 Broca:男 ×0.9 / 女 ×0.85。粗略快速
· Lorentz(法国 1929):男 = (h−100) − (h−150)/4;女 = (h−100) − (h−150)/2.5
· Devine (1974):男 = 50 + 2.3×(h−60in);女 = 45.5 + 2.3×(h−60in)。临床给药金标准
· Hamwi (1964):男 = 48 + 2.7×(h−60in);女 = 45.5 + 2.2×(h−60in)。骨架修正 ±10%
· Robinson (1983):男 = 52 + 1.9×(h−60in);女 = 49 + 1.7×(h−60in)。改良 Devine
· Miller (1983):男 = 56.2 + 1.41×(h−60in);女 = 53.1 + 1.36×(h−60in)。改良 Robinson
· BMI:WHO 1995;中国阈值 WS/T 428-2013 卫健委
· Mifflin-St Jeor (1990):男 BMR = 10W + 6.25H − 5A + 5;女 BMR = 10W + 6.25H − 5A − 161
· Harris-Benedict (1919/1984 修正):男 = 88.362 + 13.397W + 4.799H − 5.677A
· Cunningham (1980):BMR = 500 + 22 × 瘦体重(kg)。健身人群更准
· 美国海军体脂公式 (Hodgdon 1984):男 BFP = 86.010 × log10(腰 − 颈) − 70.041 × log10(身高) + 36.76
· WHR / WtHR:WHO STEPS 监测指南;Ashwell 1996 提出 WtHR > 0.5 警示
· 儿童 BMI Z-score:WHO Multicentre Growth Reference Study 2007
· 7700 kcal/kg 经验值:Wishnofsky 1958, Am J Clin Nutr(实际个体差异 ±20%)
关于本工具
了解工具定位 · 使用场景 · 对比优势
输入身高体重,一键用 BMI、Broca、罗氏三种公式计算标准体重,并给出体重范围评价。健身教练评估体态、体检后自我对照、医生快速筛查参考,1 秒出结果。所有计算在浏览器内完成,数据不上传服务器。
使用场景
体检报告自评
拿到体检报告后,BMI 值显示「超重」,但 BMI 无法区分肌肉和脂肪。健身教练、跑步爱好者使用本工具切换 Broca 公式(标准体重=身高-100)和罗氏公式(标准体重=身高-100-(身高-150)/4),对比不同算法给出的体重范围,判断是否需要减脂而非减重。
家庭健康监测
家中老人 BMI 正常但腰围偏大、孩子 BMI 偏低但发育正常——单一指标容易误判。家长用本工具同时输入全家人的身高体重,查看每个成员在 BMI / Broca / 罗氏三种标准下的体重等级,区分「需要关注体脂」和「只是骨架小」的情况。
健身目标设定
减肥初期不知道「标准体重」到底是多少——网上说法不一。健身爱好者直接用本工具输入当前体重和目标体重,切换公式:Broca 给出粗略目标、罗氏公式考虑年龄和性别修正、BMI 给出健康范围上限。三个结果取交集,得到「既安全又有挑战」的减重目标值。
减重门诊初筛
社区医生或营养师在门诊快速筛查超重人群时,用本工具替代手动查表。输入身高体重后,工具同时输出 BMI 值、Broca 标准体重、罗氏修正体重,并自动标注「偏瘦 / 正常 / 超重 / 肥胖」等级。3 秒完成一位患者的体重评估,比翻指南快 10 倍。
电商尺码参考
网购衣服时,商家尺码表通常只给身高体重范围,但同样 60kg 的人,肌肉型和脂肪型体型差别很大。买家输入自己的身高体重,用本工具算出 Broca 标准体重(偏宽松)和罗氏公式(偏紧身),对照商家推荐的「标准体重」区间,决定选 M 还是 L 码。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 (tl654.com) | 竞品 A (Calculator.net) | 传统方法 (查表/手算) |
|---|---|---|---|
| 数据隐私 | 纯浏览器计算,零上传 | 计算在服务器端完成,需上传数据 | 完全依赖人工,无数据泄露风险 |
| 处理速度 | 即时 (< 0.5 秒) | 需等待网络请求和服务器响应 (2-5 秒) | 需查找对照表或手动计算 (数分钟) |
| 公式支持 | BMI、Broca、Rohrer 三种公式 | 仅 BMI 标准公式 | 通常仅支持一种标准 (如 BMI 或 Broca) |
| 离线可用 | 完全离线,无需网络 | 必须联网 | 完全离线 |
| 结果解释 | 直接给出体重范围 (偏瘦/正常/偏胖) | 给出 BMI 数值,需用户自行对照标准 | 需用户自行理解并对照标准 |
| 输入单位 | 公制 (kg/cm) 和 英制 (lb/in) 可选 | 仅公制 (kg/cm) | 通常仅公制 (kg/cm) |
使用指南
上手步骤 · 输入输出 · 避坑提示
使用步骤
- 选择性别,输入年龄(18-99岁)和身高(100-250cm)、体重(20-300kg)
- 点击「BMI」「Broca」「罗氏」标签切换公式,查看不同算法下的标准体重范围
- 结果区显示标准体重值、当前体重与标准值的差值,以及偏瘦/正常/偏胖分类
- 点击「重置」清空所有输入和结果,重新计算
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 身高: 170cm, 体重: 65kg | BMI: 22.5 (正常) | Broca: 65kg (标准) | 罗氏: 63.5kg (偏瘦) | 典型常规场景:健康成年人标准身材 |
| 身高: 160cm, 体重: 45kg | BMI: 17.6 (偏瘦) | Broca: 55kg (偏瘦) | 罗氏: 53.3kg (偏瘦) | 典型常规场景:偏瘦女性常见输入 |
| 身高: 180cm, 体重: 90kg | BMI: 27.8 (超重) | Broca: 75kg (超重) | 罗氏: 72.5kg (超重) | 典型常规场景:超重男性常见输入 |
| 身高: 150cm, 体重: 100kg | BMI: 44.4 (重度肥胖) | Broca: 50kg (重度肥胖) | 罗氏: 48.3kg (重度肥胖) | 边界 case:极端肥胖值,所有公式均提示严重超重 |
| 身高: 200cm, 体重: 80kg | BMI: 20.0 (正常) | Broca: 100kg (偏瘦) | 罗氏: 96.7kg (偏瘦) | 边界 case:高个子人群,BMI 正常但 Broca 偏瘦 |
| 身高: 0cm, 体重: 60kg | 错误:身高必须大于 0 | 边界 case:零或负数身高输入,工具应报错 |
| 身高: 170cm, 体重: -10kg | 错误:体重必须大于 0 | 易错 case:用户误输入负数体重 |
| 身高: 170cm, 体重: abc | 错误:体重必须为数字 | 易错 case:用户输入非数字字符 |
常见错误对照8 个常踩的坑 · 错误 → 修复
1. 身高单位混用(厘米 vs 米)
身高输入 1.75身高输入 175BMI 公式使用米(1.75m),但多数用户习惯厘米(175cm)。工具界面若标注 cm 却输入 1.75,会导致 BMI 值异常偏小(约 0.57)。
2. 体重单位误用(斤 vs 公斤)
体重输入 140体重输入 70标准体重计算使用公斤(kg),国内用户常习惯用斤(1斤=0.5kg)。输入斤数值会导致结果偏大 2 倍,如 140 斤应换算为 70kg。
3. Broca 公式误用于非标准身高范围
身高 150cm,使用 Broca 公式计算标准体重身高 150cm,优先使用 BMI 或罗氏公式Broca 公式(身高-100)适用于 160-190cm 的成年男性;低于 160cm 时结果会低于正常范围,产生误导性偏瘦结论。
4. 罗氏公式性别参数选错
女性用户选择男性参数,得到 70kg 标准体重女性用户选择女性参数,得到 60kg 标准体重罗氏公式中男性系数为 0.9,女性为 0.85。选错性别会导致标准体重偏差约 5kg,尤其对身高较高者影响更明显。
5. BMI 结果解读忽略体脂率
BMI=24.5 判定为超重,开始节食BMI=24.5 结合腰围/体脂率综合评估BMI 不区分肌肉与脂肪。运动员或健身者 BMI 可能 >25 但体脂正常;老年人 BMI 正常但可能肌少症。标准体重工具仅提供参考值。
6. 儿童使用成人标准体重公式
10 岁儿童身高 140cm,用 Broca 公式得 40kg儿童应使用年龄/性别对应的生长曲线百分位表成人公式(BMI/Broca/罗氏)基于成年人代谢与骨骼发育数据。儿童处于发育期,标准体重随年龄动态变化,需参考 WHO 生长标准。
7. 小数精度截断导致累计误差
BMI 计算时只保留整数(如 22.7 → 22)BMI 计算保留至少 1 位小数(22.7)标准体重工具内部使用浮点运算,若前端显示只取整,用户可能误判体重状态(如 24.9 与 25.0 分别对应正常与超重边界)。
8. 多公式结果对比时忽略单位差异
Broca 给出 70kg,罗氏给出 65kg,认为差 5kg确认两个公式使用相同单位(kg)和相同身高/体重输入值不同公式可能默认不同单位(如某些版本 Broca 用斤)。对比前需确认输入参数完全一致,否则差值无意义。
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
BMI 法:标准体重 (kg) = 22 × 身高² (m²) Broca 法:标准体重 (kg) = 身高 (cm) - 105 罗氏法:标准体重 (kg) = 身高 (cm) - 100 - [(身高 (cm) - 150) / 4](男)或 / 2(女)
变量说明
身高— 用户输入的身高,单位 cm 或 m标准体重— 各公式计算出的理想体重,单位 kg
示例
身高 170 cm 男性:BMI 法(身高 1.7 m)→ 22 × 1.7² = 63.58 kg;Broca 法 → 170 - 105 = 65 kg;罗氏法 → 170 - 100 - (170-150)/4 = 65 kg。三公式结果接近,均约 64-65 kg。
适用范围
适用于 18-65 岁普通成年人。BMI 法基于 WHO 推荐的健康 BMI 中值 22;Broca 法源自 Broca 指数,对身高 > 180 cm 者偏低;罗氏法由罗氏公司提出,考虑性别差异。不适用于运动员、孕妇、未成年人及肌肉量异常者。
原理图
开发者集成
3 种主流语言 · 复制即用
def bmi(weight_kg: float, height_m: float) -> float:
return weight_kg / (height_m ** 2)
def broca(height_cm: float, is_male: bool) -> float:
"""Broca 公式:身高(cm) - 100(男)/ 105(女)"""
offset = 100 if is_male else 105
return height_cm - offset
def rohrer(height_cm: float, weight_kg: float) -> float:
"""罗氏指数:体重(kg) / 身高(cm)^3 * 10^7"""
return weight_kg / (height_cm ** 3) * 10_000_000
# 示例:身高 170cm,体重 65kg,男性
h_cm, w_kg = 170, 65
print(f"BMI: {bmi(w_kg, h_cm/100):.1f}") # 22.5
print(f"Broca: {broca(h_cm, True):.0f} kg") # 70
print(f"Rohrer: {rohrer(h_cm, w_kg):.1f}") # 132.3package main
import "fmt"
func bmi(weightKg float64, heightM float64) float64 {
return weightKg / (heightM * heightM)
}
func broca(heightCm float64, isMale bool) float64 {
offset := 100.0
if !isMale {
offset = 105.0
}
return heightCm - offset
}
func rohrer(heightCm float64, weightKg float64) float64 {
return weightKg / (heightCm * heightCm * heightCm) * 10_000_000
}
func main() {
hCm, wKg := 170.0, 65.0
fmt.Printf("BMI: %.1f\n", bmi(wKg, hCm/100)) // 22.5
fmt.Printf("Broca: %.0f kg\n", broca(hCm, true)) // 70
fmt.Printf("Rohrer: %.1f\n", rohrer(hCm, wKg)) // 132.3
}function bmi(weightKg, heightM) {
return weightKg / (heightM ** 2);
}
function broca(heightCm, isMale) {
const offset = isMale ? 100 : 105;
return heightCm - offset;
}
function rohrer(heightCm, weightKg) {
return weightKg / (heightCm ** 3) * 10_000_000;
}
// 示例
const hCm = 170, wKg = 65;
console.log(`BMI: ${bmi(wKg, hCm/100).toFixed(1)}`); // 22.5
console.log(`Broca: ${broca(hCm, true).toFixed(0)} kg`); // 70
console.log(`Rohrer: ${rohrer(hCm, wKg).toFixed(1)}`); // 132.3常见问题
8 个高频疑问