繁体   English   中英

BMI计算器英尺到英寸换算错误

[英]BMI Calculator Feet to Inches Conversion Wrong

在此处输入图片说明

上图是我目前正在使用的BMI计算器的屏幕截图。

下面的JavaScript代码应该将英尺标签(运费)框中提供的值转换为英寸,然后将其加到英寸标签(inheight)中提供的值,然后将结果乘以2.54以将其转换为厘米(cm)。

给出的BMI结果是错误的,例如,体重为75kg,高度为5ft 9“,BMI结果显示为0.31而不是24.42。但是当我将英尺的值更改为0或空白并将英寸的值更改为69时,它给出了正确的结果是24.42

HTML

<form name="bmiForm">
        Your Weight(kg): <br><br>
        <input type="text" name="weight" size="10"><br />

        Your Height: <br><br>
        Feet: &nbsp; <input type="number" name="ftheight" size="10"> 
        &nbsp; Inches: &nbsp; <input type="number" name="inheight" size="10"><br />

        <input type="button" value="Calculate BMI" onClick="calculateBmi()"><br /><br />

        Your BMI: <br><input class="bmiresult" name="bmi" size="10"><br />

        This Means: <br><input class="bmimean" name="meaning" size="25"><br />
        <input type="reset" value="Reset" /> </form>

JAVASCRIPT

function calculateBmi() {
var weight = document.bmiForm.weight.value
var result = 2.54 * (document.bmiForm.ftheight.value * 12 + document.bmiForm.inheight.value)
var height = result
if(weight > 0 && height > 0){   
var finalBmi = weight/(height/100*height/100)
document.bmiForm.bmi.value = finalBmi
if(finalBmi < 18.5){
document.bmiForm.meaning.value = "Hmm... you are too thin."
}
if(finalBmi > 18.5 && finalBmi < 25){
document.bmiForm.meaning.value = "Yah! you are healthy."
}
if(finalBmi > 25){
document.bmiForm.meaning.value = "Oops... you are overweight."
}
}
else{
alert("Please Fill in everything correctly")
}
}

我想要的是先将英尺框中提供的值转换为英寸,然后将其加到“英寸”框中提供的值,然后将结果乘以2.54,以得到var height

我将权重输入更改为数字类型(以使其与其他输入保持一致),然后在输入值上调用parseFloat (因为默认情况下,输入值通常默认存储为文本,而不是数字)。

如果您想将值限制为整数,则可以将其更改为ft和inch值的parseInt

如果发现输出为“丑陋”,则也可以使用toFixed来限制结果中显示的小数位数。

 function calculateBmi() { var weight = parseFloat(document.bmiForm.weight.value); var ftHeight = parseFloat(document.bmiForm.ftheight.value); var inHeight = parseFloat(document.bmiForm.inheight.value); var height = 2.54 * (ftHeight * 12 + inHeight); if(weight > 0 && height > 0){ var finalBmi = weight / (height / 100 * height / 100) document.bmiForm.bmi.value = finalBmi if(finalBmi < 18.5){ document.bmiForm.meaning.value = "Hmm... you are too thin." } else if(finalBmi > 18.5 && finalBmi < 25){ document.bmiForm.meaning.value = "Yah! you are healthy." } else if(finalBmi > 25){ document.bmiForm.meaning.value = "Oops... you are overweight." } } else{ alert("Please Fill in everything correctly") } } 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <form name="bmiForm"> Your Weight(kg): <br><br> <input type="number" name="weight" size="10"><br /> Your Height: <br><br> Feet: &nbsp; <input type="number" name="ftheight" size="10"> &nbsp; Inches: &nbsp; <input type="number" name="inheight" size="10"><br /> <input type="button" value="Calculate BMI" onClick="calculateBmi()"><br /><br /> Your BMI: <br><input class="bmiresult" name="bmi" size="10"><br /> This Means: <br><input class="bmimean" name="meaning" size="25"><br /> <input type="reset" value="Reset" /> </form> </body> </html> 

我不确定您在做什么错,但这对我有用https://jsfiddle.net/vxshwk2w/

尝试使用id代替name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM