为什么我的javascript程序没有将它转换为整数而不是字符串?

时间:2015-04-05 15:16:17

标签: javascript

我创建了一个简单的程序,它需要添加1和3并显示4但它显示我13这是我的程序:

<html>
    <head>
        <style>
        </style>
        <script type="text/javascript">
        function calculate(){

            a = document.getElementById('num1').value;
            b = document.getElementById('num2').value;
            document.getElementById('result').innerHTML = a + b;
        }
        </script>
    </head>
    <body>
        <input id='num1' value="1"/>
        <input id='num2' value='3'/>
        <p id='result'></p>
        <button onclick="calculate()">Calculate</button>
    </body>
</html>

我现在该怎么办?

3 个答案:

答案 0 :(得分:2)

您必须转换为整数。看看这段代码。

    function calculate(){

        a = parseInt(document.getElementById('num1').value, 10);
        b = parseInt(document.getElementById('num2').value, 10);
        document.getElementById('result').innerHTML = a + b;
    }

答案 1 :(得分:2)

这是因为value属性返回String。您需要将其转换为Number

通过使用+一元运算符,有一条捷径。您也可以将字符串包裹在Number中,如Number(a) + Number(b)

a = +document.getElementById('num1').value;
b = +document.getElementById('num2').value;

答案 2 :(得分:1)

尝试这样做:

document.getElementById('result').innerHTML =  parseInt(a) + parseInt(b);

原因是因为你a和b是字符串,你需要先转换成数字。