使用我们的免费BMI(身体质量指数)计算器,根据您的身高和体重快速确定您的身体质量指数。了解您的体重状态和潜在健康风险。
身体质量指数 (BMI) 是一种简单、广泛使用的测量方法,用于估算成年人的体脂含量。它是通过一个人的体重和身高计算得出的,提供了一个快速评估个体是否体重过轻、正常、超重或肥胖的方式。此计算器可以帮助您轻松确定您的 BMI 并理解其对您健康的意义。
注意:此计算器专为 20 岁及以上的成年人设计。对于儿童和青少年,请咨询儿科医生,因为 BMI 的计算方式对这一年龄组是不同的。
计算器对用户输入执行以下检查:
如果检测到无效输入,将显示错误消息,计算将不会继续,直到进行更正。
BMI 的计算公式如下:
对于英制单位:
计算器使用这些公式根据用户输入计算 BMI。以下是逐步解释:
计算器使用双精度浮点运算来确保准确性。
世界卫生组织 (WHO) 定义了以下成年人 BMI 范围:
需要注意的是,这些类别是一般性指导,可能不适用于所有个体,例如运动员、老年人或某些种族的人。
BMI 计算器在健康和医疗领域有多种应用:
个人健康评估:帮助个人快速评估其体重状态。
医疗筛查:被医疗专业人员用作初步筛查体重相关健康风险的工具。
人口健康研究:使研究人员能够分析大规模人群的体重趋势。
健身和营养规划:帮助设定体重目标并设计适当的饮食和锻炼计划。
保险风险评估:一些保险公司使用 BMI 作为确定健康保险保费的因素。
虽然 BMI 被广泛使用,但还有其他方法可以评估身体成分和健康风险:
腰围:测量腹部脂肪,是肥胖相关健康风险的良好指标。
体脂百分比:直接测量身体中脂肪的比例,通常使用皮褶测量法或生物电阻抗法。
腰臀比:比较腰围与臀围,提供脂肪分布的见解。
DEXA 扫描:使用 X 射线技术精确测量身体成分,包括骨密度、脂肪量和瘦体重。
水下称重:被认为是测量体脂百分比的最准确方法之一,涉及在水下称重。
虽然 BMI 是估算体脂含量的有用工具,但它有几个限制:
始终咨询医疗专业人员以进行全面的健康评估。
BMI 的概念由比利时数学家阿道夫·凯特莱特在 1830 年代提出。最初称为凯特莱特指数,它被提议作为人口研究中肥胖的简单测量。
在 1972 年,安塞尔·基斯创造了“身体质量指数”这一术语,他发现它是体重与身高比率中最好的体脂百分比代理指标。基斯明确引用了凯特莱特的工作以及他在 19 世纪社会物理学中的追随者。
BMI 的使用在 1980 年代变得广泛,特别是在世界卫生组织 (WHO) 于 1988 年开始使用它作为记录肥胖统计的标准后。WHO 确立了现在广泛使用的 BMI 阈值,用于体重过轻、正常体重、超重和肥胖。
尽管它被广泛使用,BMI 仍然因其在评估个体健康方面的局限性而受到批评。近年来,人们越来越认识到在评估健康风险时需要考虑其他因素,从而导致替代身体成分和健康状态测量方法的发展和使用增加。
以下是一些计算 BMI 的代码示例:
1' Excel VBA 函数用于 BMI 计算
2Function CalculateBMI(weight As Double, height As Double) As Double
3 CalculateBMI = weight / (height / 100) ^ 2
4End Function
5' 用法:
6' =CalculateBMI(70, 170)
7
1def calculate_bmi(weight_kg, height_cm):
2 if weight_kg <= 0 or height_cm <= 0:
3 raise ValueError("体重和身高必须为正数")
4 if height_cm < 50 or height_cm > 300:
5 raise ValueError("身高必须在 50 到 300 cm 之间")
6 if weight_kg < 20 or weight_kg > 500:
7 raise ValueError("体重必须在 20 到 500 kg 之间")
8
9 height_m = height_cm / 100
10 bmi = weight_kg / (height_m ** 2)
11 return round(bmi, 1)
12
13## 带有错误处理的示例用法:
14try:
15 weight = 70 # kg
16 height = 170 # cm
17 bmi = calculate_bmi(weight, height)
18 print(f"BMI: {bmi}")
19except ValueError as e:
20 print(f"错误: {e}")
21
1function calculateBMI(weight, height) {
2 if (weight <= 0 || height <= 0) {
3 throw new Error("体重和身高必须为正数");
4 }
5 if (height < 50 || height > 300) {
6 throw new Error("身高必须在 50 到 300 cm 之间");
7 }
8 if (weight < 20 || weight > 500) {
9 throw new Error("体重必须在 20 到 500 kg 之间");
10 }
11
12 const heightInMeters = height / 100;
13 const bmi = weight / (heightInMeters ** 2);
14 return Number(bmi.toFixed(1));
15}
16
17// 带有错误处理的示例用法:
18try {
19 const weight = 70; // kg
20 const height = 170; // cm
21 const bmi = calculateBMI(weight, height);
22 console.log(`BMI: ${bmi}`);
23} catch (error) {
24 console.error(`错误: ${error.message}`);
25}
26
1public class BMICalculator {
2 public static double calculateBMI(double weightKg, double heightCm) throws IllegalArgumentException {
3 if (weightKg <= 0 || heightCm <= 0) {
4 throw new IllegalArgumentException("体重和身高必须为正数");
5 }
6 if (heightCm < 50 || heightCm > 300) {
7 throw new IllegalArgumentException("身高必须在 50 到 300 cm 之间");
8 }
9 if (weightKg < 20 || weightKg > 500) {
10 throw new IllegalArgumentException("体重必须在 20 到 500 kg 之间");
11 }
12
13 double heightM = heightCm / 100;
14 return Math.round((weightKg / (heightM * heightM)) * 10.0) / 10.0;
15 }
16
17 public static void main(String[] args) {
18 try {
19 double weight = 70.0; // kg
20 double height = 170.0; // cm
21 double bmi = calculateBMI(weight, height);
22 System.out.printf("BMI: %.1f%n", bmi);
23 } catch (IllegalArgumentException e) {
24 System.out.println("错误: " + e.getMessage());
25 }
26 }
27}
28
这些示例演示了如何使用各种编程语言计算 BMI,包括输入验证和错误处理。您可以根据具体需要调整这些函数或将其集成到更大的健康评估系统中。
正常体重:
超重:
体重过轻:
肥胖: