You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写返回BMI的函数?为何计算结果与预期不符?

你的BMI计算器代码问题分析与修复

为什么得到15而不是20?

你的代码存在两个核心问题,其中一个是导致错误结果的直接原因:

  • 硬编码固定数值,未使用函数参数:你在函数内部直接写死了65/(1.8*1.8)进行计算,完全忽略了定义好的weight和height参数。如果实际运行时你误写了数值(比如把身高写成2.1m,计算结果就是65/(2.1²)≈14.7,四舍五入后就是15),就会得到这个错误结果。另外,既然定义了参数,就应该用它们计算,否则函数失去了复用意义。
  • 函数无返回值:你计算完bmi后没有添加return语句,调用bmiCalculator()时根本拿不到计算结果,你看到的15大概率是之前错误版本代码的输出。

修正后的代码

function bmiCalculator(weight, height) {
  const bmi = weight / (height ** 2); // 用幂运算写法更简洁
  return Math.round(bmi);
}

// 传入你的体重和身高参数
const yourBMI = bmiCalculator(65, 1.8);
console.log(yourBMI); // 输出20

正确计算过程

BMI计算公式为:BMI = 体重(kg) ÷ (身高(m))²
代入你的数值:
65 ÷ (1.8×1.8) = 65 ÷ 3.24 ≈ 20.06,四舍五入后结果为20,符合预期。

内容的提问来源于stack exchange,提问作者Sohail Afridi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:04:59