Whiz Tools

BMI 计算器

BMI 可视化

BMI 计算器

介绍

身体质量指数 (BMI) 是一种简单、广泛使用的测量方法,用于估算成年人的体脂含量。它是通过一个人的体重和身高计算得出的,提供了一个快速评估个体是否体重过轻、正常、超重或肥胖的方式。此计算器可以帮助您轻松确定您的 BMI 并理解其对您健康的意义。

如何使用此计算器

  1. 输入您的身高,单位可以是厘米 (cm) 或英寸 (in)。
  2. 输入您的体重,单位可以是千克 (kg) 或磅 (lbs)。
  3. 点击“计算”按钮以获得您的 BMI。
  4. 结果将显示,并附带一个类别,指示您的体重状态。

注意:此计算器专为 20 岁及以上的成年人设计。对于儿童和青少年,请咨询儿科医生,因为 BMI 的计算方式对这一年龄组是不同的。

输入验证

计算器对用户输入执行以下检查:

  • 身高和体重必须为正数。
  • 身高必须在合理范围内(例如,50-300 cm 或 20-120 英寸)。
  • 体重必须在合理范围内(例如,20-500 kg 或 44-1100 lbs)。

如果检测到无效输入,将显示错误消息,计算将不会继续,直到进行更正。

公式

BMI 的计算公式如下:

BMI=weight(kg)[height(m)]2BMI = \frac{weight (kg)}{[height (m)]^2}

对于英制单位:

BMI=703×weight(lbs)[height(in)]2BMI = 703 \times \frac{weight (lbs)}{[height (in)]^2}

计算

计算器使用这些公式根据用户输入计算 BMI。以下是逐步解释:

  1. 将身高转换为米(如果是 cm)或英寸(如果是英尺和英寸)。
  2. 将体重转换为千克(如果是 lbs)。
  3. 将身高平方。
  4. 将体重除以平方的身高。
  5. 如果使用英制单位,则将结果乘以 703。
  6. 将结果四舍五入到小数点后一位。

计算器使用双精度浮点运算来确保准确性。

BMI 分类

世界卫生组织 (WHO) 定义了以下成年人 BMI 范围:

  • 体重过轻:BMI < 18.5
  • 正常体重:18.5 ≤ BMI < 25
  • 超重:25 ≤ BMI < 30
  • 肥胖:BMI ≥ 30

需要注意的是,这些类别是一般性指导,可能不适用于所有个体,例如运动员、老年人或某些种族的人。

BMI 分类的可视化表示

体重过轻 < 18.5 正常 18.5 - 24.9 超重 25 - 29.9 肥胖 ≥ 30

单位和精度

  • 身高可以以厘米 (cm) 或英寸 (in) 输入。
  • 体重可以以千克 (kg) 或磅 (lbs) 输入。
  • BMI 结果四舍五入到小数点后一位以便于阅读,但内部计算保持完整精度。

使用案例

BMI 计算器在健康和医疗领域有多种应用:

  1. 个人健康评估:帮助个人快速评估其体重状态。

  2. 医疗筛查:被医疗专业人员用作初步筛查体重相关健康风险的工具。

  3. 人口健康研究:使研究人员能够分析大规模人群的体重趋势。

  4. 健身和营养规划:帮助设定体重目标并设计适当的饮食和锻炼计划。

  5. 保险风险评估:一些保险公司使用 BMI 作为确定健康保险保费的因素。

替代方案

虽然 BMI 被广泛使用,但还有其他方法可以评估身体成分和健康风险:

  1. 腰围:测量腹部脂肪,是肥胖相关健康风险的良好指标。

  2. 体脂百分比:直接测量身体中脂肪的比例,通常使用皮褶测量法或生物电阻抗法。

  3. 腰臀比:比较腰围与臀围,提供脂肪分布的见解。

  4. DEXA 扫描:使用 X 射线技术精确测量身体成分,包括骨密度、脂肪量和瘦体重。

  5. 水下称重:被认为是测量体脂百分比的最准确方法之一,涉及在水下称重。

限制和考虑

虽然 BMI 是估算体脂含量的有用工具,但它有几个限制:

  1. 它不区分肌肉质量和脂肪质量,可能会错误地将肌肉发达的人归类为超重或肥胖。
  2. 它不考虑脂肪分布,这可能是健康风险的重要指标。
  3. 它可能不适合运动员、老年人或某些医疗状况的人。
  4. 它不考虑年龄、性别或种族等因素,这些因素可能影响健康体重范围。
  5. 对于非常矮小或非常高大的人,它可能无法准确反映健康状况。

始终咨询医疗专业人员以进行全面的健康评估。

历史

BMI 的概念由比利时数学家阿道夫·凯特莱特在 1830 年代提出。最初称为凯特莱特指数,它被提议作为人口研究中肥胖的简单测量。

在 1972 年,安塞尔·基斯创造了“身体质量指数”这一术语,他发现它是体重与身高比率中最好的体脂百分比代理指标。基斯明确引用了凯特莱特的工作以及他在 19 世纪社会物理学中的追随者。

BMI 的使用在 1980 年代变得广泛,特别是在世界卫生组织 (WHO) 于 1988 年开始使用它作为记录肥胖统计的标准后。WHO 确立了现在广泛使用的 BMI 阈值,用于体重过轻、正常体重、超重和肥胖。

尽管它被广泛使用,BMI 仍然因其在评估个体健康方面的局限性而受到批评。近年来,人们越来越认识到在评估健康风险时需要考虑其他因素,从而导致替代身体成分和健康状态测量方法的发展和使用增加。

示例

以下是一些计算 BMI 的代码示例:

' Excel VBA 函数用于 BMI 计算
Function CalculateBMI(weight As Double, height As Double) As Double
    CalculateBMI = weight / (height / 100) ^ 2
End Function
' 用法:
' =CalculateBMI(70, 170)
def calculate_bmi(weight_kg, height_cm):
    if weight_kg <= 0 or height_cm <= 0:
        raise ValueError("体重和身高必须为正数")
    if height_cm < 50 or height_cm > 300:
        raise ValueError("身高必须在 50 到 300 cm 之间")
    if weight_kg < 20 or weight_kg > 500:
        raise ValueError("体重必须在 20 到 500 kg 之间")
    
    height_m = height_cm / 100
    bmi = weight_kg / (height_m ** 2)
    return round(bmi, 1)

## 带有错误处理的示例用法:
try:
    weight = 70  # kg
    height = 170  # cm
    bmi = calculate_bmi(weight, height)
    print(f"BMI: {bmi}")
except ValueError as e:
    print(f"错误: {e}")
function calculateBMI(weight, height) {
  if (weight <= 0 || height <= 0) {
    throw new Error("体重和身高必须为正数");
  }
  if (height < 50 || height > 300) {
    throw new Error("身高必须在 50 到 300 cm 之间");
  }
  if (weight < 20 || weight > 500) {
    throw new Error("体重必须在 20 到 500 kg 之间");
  }

  const heightInMeters = height / 100;
  const bmi = weight / (heightInMeters ** 2);
  return Number(bmi.toFixed(1));
}

// 带有错误处理的示例用法:
try {
  const weight = 70; // kg
  const height = 170; // cm
  const bmi = calculateBMI(weight, height);
  console.log(`BMI: ${bmi}`);
} catch (error) {
  console.error(`错误: ${error.message}`);
}
public class BMICalculator {
    public static double calculateBMI(double weightKg, double heightCm) throws IllegalArgumentException {
        if (weightKg <= 0 || heightCm <= 0) {
            throw new IllegalArgumentException("体重和身高必须为正数");
        }
        if (heightCm < 50 || heightCm > 300) {
            throw new IllegalArgumentException("身高必须在 50 到 300 cm 之间");
        }
        if (weightKg < 20 || weightKg > 500) {
            throw new IllegalArgumentException("体重必须在 20 到 500 kg 之间");
        }

        double heightM = heightCm / 100;
        return Math.round((weightKg / (heightM * heightM)) * 10.0) / 10.0;
    }

    public static void main(String[] args) {
        try {
            double weight = 70.0; // kg
            double height = 170.0; // cm
            double bmi = calculateBMI(weight, height);
            System.out.printf("BMI: %.1f%n", bmi);
        } catch (IllegalArgumentException e) {
            System.out.println("错误: " + e.getMessage());
        }
    }
}

这些示例演示了如何使用各种编程语言计算 BMI,包括输入验证和错误处理。您可以根据具体需要调整这些函数或将其集成到更大的健康评估系统中。

数值示例

  1. 正常体重:

    • 身高:170 cm
    • 体重:65 kg
    • BMI:22.5(正常体重)
  2. 超重:

    • 身高:180 cm
    • 体重:90 kg
    • BMI:27.8(超重)
  3. 体重过轻:

    • 身高:165 cm
    • 体重:50 kg
    • BMI:18.4(体重过轻)
  4. 肥胖:

    • 身高:175 cm
    • 体重:100 kg
    • BMI:32.7(肥胖)

参考文献

  1. 世界卫生组织。 (2000)。肥胖:预防和管理全球流行病。世界卫生组织。
  2. Keys, A., Fidanza, F., Karvonen, M. J., Kimura, N., & Taylor, H. L. (1972)。相对体重和肥胖的指标。《慢性疾病杂志》,25(6),329-343。
  3. Nuttall, F. Q. (2015)。身体质量指数:肥胖、BMI 和健康:一项批判性回顾。《营养今天》,50(3),117。
  4. Gallagher, D., Heymsfield, S. B., Heo, M., Jebb, S. A., Murgatroyd, P. R., & Sakamoto, Y. (2000)。健康的体脂百分比范围:一种基于身体质量指数制定指南的方法。《美国临床营养学杂志》,72(3),694-701。
  5. “身体质量指数 (BMI)”。疾病控制与预防中心,https://www.cdc.gov/healthyweight/assessing/bmi/index.html。访问日期:2024 年 8 月 2 日。
Feedback