<!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)。如何更改代码以使其不会连接数字但只计算它们?
答案 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");
}