-3

我是 Javascript 的新手,我很难编码。我现在正在做一个 BMI 计算器的项目。我无法完成的唯一步骤是“使用 parseInt() 函数将值转换为整数”。我应该把parseInt()函数放在哪里?

这是我的代码:

<script type="text/javascript">
    function calcBMI (form) {
        var h = form.height.value;
        var lbs = form.weight.value;
        parseInt(form.result.value);
        form.result.value = (lbs*lbs)/(h*h);
    }
</script>
4

5 回答 5

4

这是一种使用方式parseInt(基数在哪里10):

var h = parseInt(form.height.value, 10),
    lbs = parseInt(form.weight.value, 10);

所以函数返回转换后的值。

注意:重要的是要知道,对于您的情况,实际上不需要将变量转换为整数,因为乘法*会自动将字符串转换为数值。

于 2013-02-17T20:36:33.983 回答
0

我认为这里的大多数答案都是正确的。
除了 parseInt 之外,您的 JavaScript 中可能还缺少其他内容。
这是我使用您的代码构建的示例(有一些小的更改):

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <form id="myform">
    Height: <input type="text" name="height" value="" /><br />
    Weight: <input type="text" name="weight" value="" /><br />
    Result: <input type="text" name="result" value="" /> <br />
    <input type="button" onclick="calcBMI()" value="Calculate" />
  </form>
  <script>
    function calcBMI () {
       var form = document.getElementById('myform');
       var h = parseInt(form.height.value, 10);
       var lbs = parseInt(form.weight.value, 10);
       //parseInt(form.result.value);
       form.result.value = (lbs*lbs)/(h*h);
 }

  </script>
</body>
</html>

试试这个代码。

我希望这有帮助。

于 2013-02-17T21:53:52.280 回答
0

parseInt(string, radix)

  • string - 必需的。要解析的字符串,
  • radix- 可选的。表示要使用的数字系统的数字(从 2 到 36)

取自:w3schoolsparseInt()

于 2013-02-17T20:38:14.957 回答
0

请改用 Number() 函数。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number

function calcBMI (form) {
    var h = Number(form.height.value),
        lbs = Number(form.weight.value);

     form.result.value = ( lbs*lbs )/( h*h );
}
于 2013-02-17T20:39:28.150 回答
0
<script type="text/javascript">
    function calcBMI (form) {
        var h = parseInt(form.height.value),
            lbs = parseInt(form.weight.value);
        form.result.value = (lbs*lbs)/(h*h);
    }
</script>
于 2013-02-17T20:45:42.873 回答