我正试图做一个普通的计算器。这是我的代码:
var data = [];
var yesno = confirm("Would you like to add more data?");
while (yesno) {
var newdata = prompt("Enter a piece of data (must be a number)");
data.push(newdata);
var yesno = confirm("Would you like to add more data?");
}
var total = 0;
var i = 0;
if (!yesno) {
while (i < data.length) {
total += data[i];
i++;
}
}
var average = total / data.length;
document.write(average);
输入似乎不错,但是在计算时出了点问题。它说6和6的平均值是33,2和2的平均值是11,而12和6的平均值是306。这显然是错误的。预先感谢您的帮助。
答案 0 :(得分:4)
您需要从提示中输入数字,而不是字符串值。
最简单的方法是使用unary plus +
将数字作为字符串转换为数字
data.push(+newdata);
// ^
您的第一个示例显示,用'6'
加'6'
,您将得到'66'
,而不是12
。稍后的除法将值转换为数字,但结果错误。
答案 1 :(得分:1)
它将输入作为字符串。将输入转换为浮点数,然后再将其放入数组。我认为它执行的字符串添加操作类似6+6=66
,然后是66/2 = 33
。 2和2的情况类似。