JavaScript连接应该计算的数字

时间:2013-10-08 14:52:52

标签: javascript html sum concatenation

<!DOCTYPE html>
<html>
<head>
<title>Sum of terms</title>
</head>
<body>
<script type="text/javascript">
var num = prompt("Sum of terms");
var result = (0.5 * num * (1 + num));
document.write(result);
</script>
</body>
</html>

这是一个简单的应用程序,它汇总了一系列数字的所有项(从1开始)。如果num = 100,结果将是5050.相反,它给出了55000的结果,这是因为JavaScript将1和100连接为1100(1 + num)。如何更改代码以使其不会连接数字但只计算它们?

2 个答案:

答案 0 :(得分:1)

num设为数字变量

num=parseInt(num);   // do this before you compute result.
                     // or even parseFloat if you need a FP value.

当您将数字与字符串混合时,javascript会将+视为连接运算符。通过将其转换为整数值,您可以确保JavaScript知道等式中的所有值都是数字,并且需要将其视为这样。

答案 1 :(得分:1)

问题是prompt()返回一个字符串,这导致javascript认为你想要连接多个字符串。 我会尝试:

    var num = prompt("Sum of terms");
    try{
        num = parseInt(num);
        var result = (0.5 * num * (1 + num));
        document.write(result);
    }
    catch(e){
        alert("Please specify a number");
    }