BMI 计算器

身高体重→BMI/健康区间/中外标准

418 次访问

BMI / 基础代谢 / 健康风险评估

cm
kg
cm
cm

BMI 分级标准(中国 vs WHO 国际)

类别中国(CHN)WHO 国际说明
偏瘦< 18.5< 18.5免疫力下降,骨质疏松风险
正常18.5 – 23.918.5 – 24.9健康状态
超重24.0 – 27.925.0 – 29.9高血压风险↑,建议运动
肥胖≥ 28.0≥ 30.0糖尿病/心血管疾病风险显著↑

计算说明

BMI(Body Mass Index)

· BMI = 体重(kg) ÷ 身高(m)² 例:65 / 1.7² = 22.5

· 中国成人标准(卫健委):18.5 / 24 / 28 三档;WHO 国际:18.5 / 25 / 30 三档

BMR 基础代谢(Mifflin-St Jeor,1990 公认最准)

· 男:10×kg + 6.25×cm − 5×age + 5

· 女:10×kg + 6.25×cm − 5×age − 161

TDEE 每日总热量需求 = BMR × 活动系数

· 1.2 久坐|1.375 轻度(每周 1-3 次运动)|1.55 中度|1.725 高度|1.9 极高

WHR 腰臀比(内脏脂肪指标)

· 男 > 0.90 / 女 > 0.85 为腹型肥胖,比 BMI 更能预测心血管风险

BMI 不适用于:孕妇 / 哺乳期 / 运动员(肌肉发达者 BMI 可能虚高)/ 儿童(用儿童 BMI 百分位)/ 老人(需结合肌少症评估)。健康决策请咨询专业医师。

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

🏃

健身效果追踪

健身爱好者每周记录体重和身高数据,计算 BMI 变化趋势。本工具同步显示中国和 WHO 两套标准区间,帮助判断减脂增肌是否在健康范围内——避免只看体重数字忽略体脂变化,也防止过度减重进入偏瘦区间。配合体脂秤数据,更准确评估训练效果。

🏥

体检报告自查

拿到体检报告后,对 BMI 指标有疑问的普通人。输入身高体重后,工具同时展示中国标准(24-27.9 超重)和 WHO 标准(25-29.9 超重),并标注当前值落在哪个风险等级。方便对比不同标准下的健康建议,决定是否需要进一步咨询医生。

🧑‍🍼

孕期体重管理

孕妇在产检间隔期需要监控体重增长是否在推荐范围内。输入孕前身高体重和当前体重,工具计算 BMI 并对照孕期体重增长指南(低体重 / 正常 / 超重孕妇的推荐增重区间),帮助判断当前增重速度是否合理,避免过快或过慢影响母婴健康。

👨‍👩‍👧‍👦

家庭健康筛查

家长想快速了解全家人的体重状况是否在健康范围。依次输入每位家庭成员的身高体重,工具输出各自的 BMI 值和对应健康区间,并标注中外标准差异。一次操作覆盖全家,方便发现潜在的超重或偏瘦成员,及时调整饮食或运动计划。

📋

入职体检自测

求职者在正式体检前想预判自己的 BMI 是否达标。输入身高体重后,工具显示 BMI 数值及常见企业体检标准(通常要求 18.5-24),并给出建议:如果接近边界值,提前调整饮食或增加运动,避免因 BMI 不合格影响入职流程。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具 (bmi.tl654.com)竞品 A (calculator.net BMI)传统方法 (体检/医院)
数据隐私纯浏览器计算,身高体重数据不上传服务器,本地完成数据通过表单提交至服务器计算需告知工作人员身高体重,数据录入内部系统
处理速度输入后即时显示结果,无网络延迟需等待页面加载和服务器响应,通常 1-3 秒需排队、测量、等待报告,通常数小时至数天
离线可用完全离线可用,页面加载后断网也能计算必须联网,无法离线使用必须前往线下机构,完全依赖现场
标准覆盖同时展示中国标准 (WS/T 428-2013) 和 WHO 标准主要展示 WHO 标准,部分页面提供其他标准选项通常只采用国内通用标准,标准更新滞后
结果解读直接给出健康区间分类和标准来源,结果直观给出 BMI 值和简单分类,部分页面有详细说明需医生或体检报告解读,信息获取不即时
使用门槛无需注册、无需安装、打开即用无需注册,但需要网络环境和浏览器需挂号、排队、付费,流程复杂耗时

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例8 个典型场景,覆盖常规、边界与易错

输入输出说明
身高: 170 cm, 体重: 65 kgBMI: 22.5 | 健康区间: 正常体重 | 中国标准: 正常 (18.5-23.9) | 国际标准: 正常 (18.5-24.9)典型常规场景:成年男性标准体型
身高: 160 cm, 体重: 50 kgBMI: 19.5 | 健康区间: 正常体重 | 中国标准: 正常 (18.5-23.9) | 国际标准: 正常 (18.5-24.9)典型常规场景:成年女性标准体型
身高: 180 cm, 体重: 45 kgBMI: 13.9 | 健康区间: 体重过轻 | 中国标准: 过轻 (<18.5) | 国际标准: 过轻 (<18.5)边界 case:极端过轻值,接近厌食症风险线
身高: 150 cm, 体重: 100 kgBMI: 44.4 | 健康区间: 重度肥胖 | 中国标准: 肥胖 (≥28) | 国际标准: 重度肥胖 (≥35)边界 case:极端肥胖值,III 级肥胖风险
身高: 100 cm, 体重: 20 kgBMI: 20.0 | 健康区间: 正常体重 | 中国标准: 正常 (18.5-23.9) | 国际标准: 正常 (18.5-24.9)边界 case:儿童身高下限,BMI 公式仍适用
身高: 200 cm, 体重: 150 kgBMI: 37.5 | 健康区间: 肥胖 | 中国标准: 肥胖 (≥28) | 国际标准: 肥胖 (≥30)边界 case:身高上限+极端体重,运动员也罕见
身高: 170 cm, 体重: 65 kg, 年龄: 70 岁BMI: 22.5 | 健康区间: 正常体重 | 中国标准: 正常 (18.5-23.9) | 国际标准: 正常 (18.5-24.9)易错 case:BMI 不区分年龄,老年人正常值同标准
身高: 170 cm, 体重: 65 kg, 性别: 女BMI: 22.5 | 健康区间: 正常体重 | 中国标准: 正常 (18.5-23.9) | 国际标准: 正常 (18.5-24.9)易错 case:BMI 不区分性别,男女标准完全相同

常见错误对照8 个常踩的坑 · 错误 → 修复

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

错误
身高输入 1.75(以为是米,但工具默认厘米)
修复
身高输入 175(厘米)或确认工具单位后再输入

BMI 公式要求身高以米为单位,但多数中文工具输入框默认厘米。1.75 米 = 175 厘米,若按米输入 1.75 会被当成 1.75 厘米,结果偏差巨大。

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

错误
体重输入 130(以为是斤,但工具默认公斤)
修复
体重输入 65(公斤)或先换算:130 斤 ÷ 2 = 65 公斤

中国大陆习惯用斤,但 BMI 公式要求公斤。直接输斤会导致结果翻倍,误判为肥胖。

3. 小数点分隔符用错(点 vs 逗号)

错误
身高输入 1,75(逗号作为小数点)
修复
身高输入 1.75(英文句点作为小数点)

欧洲习惯用逗号做小数点,但 HTML input[type=number] 和多数 JS 解析只认点。逗号会被当成无效字符或截断。

4. 输入极端值(超出人体范围)

错误
身高输入 250(厘米),体重输入 500(公斤)
修复
身高输入 150-220 厘米,体重输入 30-300 公斤

BMI 公式本身不限制输入范围,但极端值(如身高 250cm)不现实,结果无参考意义。工具可能不校验,用户需自行判断合理性。

5. 忽略年龄和性别对标准的修正

错误
65 岁男性用通用 BMI 标准(18.5-24)判断健康
修复
参考 WHO 或中国指南:老年人(≥65 岁)BMI 建议 20-26.9,略高于通用范围

通用 BMI 标准基于年轻成人数据。老年人肌肉流失、骨密度下降,稍高 BMI 反而降低死亡率。儿童/青少年需用百分位曲线。

6. 把 BMI 当体脂率用

错误
健身者 BMI=27 判定为超重,开始节食减重
修复
结合体脂率或腰围判断:肌肉量大者 BMI 偏高但体脂正常

BMI 不区分肌肉和脂肪。运动员、健身者肌肉密度大,BMI 可能超标但体脂健康。应结合体脂秤、皮褶厚度或腰围(男<90cm,女<85cm)综合评估。

7. 用错标准(中国 vs 国际)

错误
中国人用 WHO 标准(BMI≥25 超重,≥30 肥胖)
修复
中国人用中国标准(BMI≥24 超重,≥28 肥胖)

WHO 标准基于西方人群,亚洲人体脂率偏高、肌肉量偏低,相同 BMI 下代谢风险更大。中国标准(WS/T 428-2013)更严格,超重/肥胖阈值分别低 1 和 2。

8. 输入时混入非数字字符

错误
身高输入 175cm,体重输入 65kg
修复
身高输入 175,体重输入 65(纯数字,不带单位文字)

输入框通常只接受数字和小数点。带字母(cm/kg)会被 JS parseInt/parseFloat 截断为 175/65 或直接 NaN,结果不可靠。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

BMI = W / H²

变量说明

  • BMI — 身体质量指数(kg/m²)
  • W — 体重(kg)
  • H — 身高(m)

示例

身高 1.75 m,体重 70 kg。H=1.75,W=70。BMI = 70 / (1.75 × 1.75) = 70 / 3.0625 ≈ 22.86 kg/m²。按 WHO 标准(18.5–24.9 正常),此值在正常范围内。

适用范围

适用于 18–65 岁非孕期、非运动员的普通成年人。对肌肉量极高者(如健美运动员)或老年人(肌肉流失)可能高估/低估体脂率。来源:WHO 1995 年《Physical Status》报告。

原理图

输入身高 / 体重浏览器内计算BMI = 体重(kg) / 身高²(m)输出结果BMI 值 + 健康区间健康区间判定(中外标准)中国标准WHO 标准中国标准:偏瘦 <18.5 / 正常 18.5-23.9 / 超重 24-27.9 / 肥胖 ≥28WHO 标准:偏瘦 <18.5 / 正常 18.5-24.9 / 超重 25-29.9 / 肥胖 ≥30
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import json

def calculate_bmi(weight_kg: float, height_cm: float) -> dict:
    """
    计算 BMI 并返回国际标准与中国标准分类。
    输入:体重(kg),身高(cm)
    """
    if weight_kg <= 0 or height_cm <= 0:
        raise ValueError("体重和身高必须为正数")
    if height_cm > 250 or weight_kg > 500:
        raise ValueError("输入值超出合理范围")

    height_m = height_cm / 100
    bmi = round(weight_kg / (height_m ** 2), 1)

    # WHO 国际标准
    if bmi < 18.5:
        intl_category = "Underweight"
    elif bmi < 25:
        intl_category = "Normal"
    elif bmi < 30:
        intl_category = "Overweight"
    else:
        intl_category = "Obese"

    # 中国标准(WS/T 428-2013)
    if bmi < 18.5:
        cn_category = "偏瘦"
    elif bmi < 24:
        cn_category = "正常"
    elif bmi < 28:
        cn_category = "超重"
    else:
        cn_category = "肥胖"

    return {
        "bmi": bmi,
        "international": intl_category,
        "china": cn_category
    }

# 示例
result = calculate_bmi(70, 175)
print(json.dumps(result, ensure_ascii=False))
# 输出:{"bmi": 22.9, "international": "Normal", "china": "正常"}
package main

import (
	"fmt"
	"math"
)

// BMICategory 存储计算结果
type BMICategory struct {
	BMI          float64 `json:"bmi"`
	International string  `json:"international"`
	China        string  `json:"china"`
}

func calculateBMI(weightKg float64, heightCm float64) (BMICategory, error) {
	if weightKg <= 0 || heightCm <= 0 {
		return BMICategory{}, fmt.Errorf("体重和身高必须为正数")
	}
	if heightCm > 250 || weightKg > 500 {
		return BMICategory{}, fmt.Errorf("输入值超出合理范围")
	}

	heightM := heightCm / 100
	bmi := math.Round(weightKg/(heightM*heightM)*10) / 10

	// WHO 国际标准
	intl := "Normal"
	switch {
	case bmi < 18.5:
		intl = "Underweight"
	case bmi >= 30:
		intl = "Obese"
	case bmi >= 25:
		intl = "Overweight"
	}

	// 中国标准
	cn := "正常"
	switch {
	case bmi < 18.5:
		cn = "偏瘦"
	case bmi >= 28:
		cn = "肥胖"
	case bmi >= 24:
		cn = "超重"
	}

	return BMICategory{BMI: bmi, International: intl, China: cn}, nil
}

func main() {
	result, err := calculateBMI(70, 175)
	if err != nil {
		fmt.Println("错误:", err)
		return
	}
	fmt.Printf("BMI: %.1f, 国际: %s, 中国: %s\n", result.BMI, result.International, result.China)
	// 输出:BMI: 22.9, 国际: Normal, 中国: 正常
}
/**
 * 计算 BMI 并返回分类结果
 * @param {number} weightKg - 体重(公斤)
 * @param {number} heightCm - 身高(厘米)
 * @returns {{bmi: number, international: string, china: string}}
 */
function calculateBMI(weightKg, heightCm) {
    if (weightKg <= 0 || heightCm <= 0) {
        throw new Error('体重和身高必须为正数');
    }
    if (heightCm > 250 || weightKg > 500) {
        throw new Error('输入值超出合理范围');
    }

    const heightM = heightCm / 100;
    const bmi = Math.round((weightKg / (heightM ** 2)) * 10) / 10;

    // WHO 国际标准
    let international;
    if (bmi < 18.5) international = 'Underweight';
    else if (bmi < 25) international = 'Normal';
    else if (bmi < 30) international = 'Overweight';
    else international = 'Obese';

    // 中国标准
    let china;
    if (bmi < 18.5) china = '偏瘦';
    else if (bmi < 24) china = '正常';
    else if (bmi < 28) china = '超重';
    else china = '肥胖';

    return { bmi, international, china };
}

// 示例
console.log(calculateBMI(70, 175));
// 输出:{ bmi: 22.9, international: 'Normal', china: '正常' }

常见问题

8 个高频疑问

BMI 计算器怎么用?需要填哪些东西?
只需要填身高(厘米)和体重(公斤)两个数字。输入后点击计算,页面会直接显示 BMI 值、对应健康区间(偏瘦/正常/超重/肥胖)以及中国标准和国际标准(WHO)的对比。如果只填了身高或体重,计算不会触发;体重必须是 1-500 公斤之间的数字,身高 50-300 厘米之间,超出范围会提示重新输入。不需要注册或登录,打开页面就能用。
为什么我用不同网站算出来的 BMI 不一样?
BMI 计算公式(体重÷身高²)全球统一,差异一般来自四舍五入精度或身高单位换算。有些工具要求身高填“米”(如 1.75),本工具要求厘米(如 175),填错单位会导致结果偏差。另外,部分工具会额外显示“理想体重”或“体脂率估算”,这些不是 BMI 本身,不同工具用的公式不同(如 Broca 公式、Deurenberg 公式),结果自然不一样。仅看 BMI 数值,所有标准计算器结果应一致。
BMI 正常范围是 18.5-24,但为什么我 23.5 医生还说偏胖?
BMI 是群体统计指标,不直接反映体脂分布。中国标准(WS/T 428-2013)的 BMI 正常范围是 18.5-23.9,24-27.9 为超重,28 以上为肥胖,比 WHO 的 25/30 切点更严格。医生可能结合了腰围、体脂率、内脏脂肪等级等数据判断。如果肌肉量高(如健身人群),BMI 偏高但体脂正常;如果腰围超过 90cm(男)/ 85cm(女),即使 BMI 正常也可能存在代谢风险。
BMI 对运动员或老年人准不准?
对这两类人群参考价值有限。运动员肌肉密度大,BMI 可能显示“超重”甚至“肥胖”,但实际体脂很低。老年人因骨质流失和肌肉萎缩,体重下降,BMI 可能显示“正常”但体脂率偏高(少肌性肥胖)。如果属于这两类人群,建议同时测量腰围、体脂率或使用身体成分分析仪,不要只看 BMI 判断健康状态。
这个 BMI 计算器会保存我的身高体重数据吗?
不会。所有计算完全在浏览器本地运行,不经过任何服务器。输入的身高和体重只存在于当前页面的内存中,关闭浏览器标签页或刷新页面后数据自动清除。可以打开浏览器开发者工具(F12 → Network 标签),点击计算后观察:没有任何网络请求发到外部服务器。如果不放心,也可断网后使用,工具仍然正常工作。
BMI 超过 30 是不是很危险?需要去看医生吗?
BMI ≥ 30(中国标准为 ≥ 28)属于肥胖范围,确实与高血压、糖尿病、脂肪肝等慢性病风险升高相关。但单次 BMI 超标不直接等于“有病”,建议连续监测 1-2 周,排除短期的水肿、饮食或测量误差。如果持续超标,且伴有腰围过大(男≥90cm,女≥85cm)、体检血糖血脂异常或家族代谢病史,建议到内分泌科或营养科做进一步评估,不要仅凭 BMI 自行诊断。
输入体重时单位搞错了,按斤填的怎么办?
本工具默认体重单位是公斤(kg),如果按斤(500克)输入,结果会偏大一倍。例如实际体重 70 公斤,按斤填成 140,BMI 会从 22.9 变成 45.7,直接跳到“重度肥胖”。发现填错后,把数字除以 2 再输入即可。如果已经看到错误结果,刷新页面重新填写,不需要清缓存。身高同理,默认用厘米(cm),如果按米填(如 1.75),结果会偏小 10000 倍。
BMI 正常但肚子大,这个工具能看出来吗?
不能。BMI 只综合身高和体重,不区分脂肪分布。腰围过大(中心性肥胖)是独立于 BMI 的心血管风险因素。本工具只显示 BMI 数值和区间,不测量腰围或估算体脂率。如果 BMI 正常但腰围超标(男≥90cm,女≥85cm),建议使用腰高比(腰围÷身高,正常<0.5)或单独测量体脂率来评估健康风险。
选择 打开 +新窗口 esc关闭