纯HTML实现BMI计算器 计算结果小数点位置异常问题求解
纯HTML BMI计算器计算结果异常修正
错误原因
当前结果数值偏差来自单位不匹配:
- BMI标准计算公式为
体重(kg) ÷ 身高(m)的平方 - 现有代码直接以厘米为单位的身高值参与计算,分母比正确值大10000倍,因此结果会比正确值小四个数量级,出现0.002794这类错误输出。
修正方案
无需引入独立JS脚本,直接修改<form>标签的oninput内联表达式即可,同步完成单位换算、数值格式化:
- 将输入的厘米身高除以100,转换为公式要求的米单位
- 调用
toFixed(2)保留两位小数,自动消除无意义前置零 - 追加字符串替换逻辑,把小数点替换为需要的逗号分隔格式
- 额外建议将输入框从
text类型改为number类型,避免非数字输入导致计算错误,同时移动端会自动唤起数字键盘。
修正后可直接运行的代码
<form oninput="wynik.value = (waga.value / ((wzrost.value/100) * (wzrost.value/100))).toFixed(2).replace('.', ',')"> <input type="number" name="waga" autofocus placeholder="Podaj swoją wagę w kg"> <input type="number" name="wzrost" placeholder="Podaj swój wzrost w cm"><br> <output id="wynik"></output> </form>
输入体重80kg、身高169cm测试时,输出结果为27,94,完全符合预期。
内容的提问来源于stack exchange,提问作者lolorekkk
相关产品推荐
相关产品推荐

