0
<!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)。如何更改代码使其不会连接数字而只是将它们计数?

4

2 回答 2

1

使您num的数字变量

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

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

于 2013-10-08T14:55:05.100 回答
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");
    }
于 2013-10-08T15:00:04.420 回答