如何编写返回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
相关产品推荐
相关产品推荐

