平均计算器发现奇怪和不正确的数字

时间:2019-06-02 10:44:14

标签: javascript

我正试图做一个普通的计算器。这是我的代码:

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。这显然是错误的。预先感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您需要从提示中输入数字,而不是字符串值。

最简单的方法是使用unary plus +将数字作为字符串转换为数字

data.push(+newdata);
//        ^

您的第一个示例显示,用'6''6',您将得到'66',而不是12。稍后的除法将值转换为数字,但结果错误。

答案 1 :(得分:1)

它将输入作为字符串。将输入转换为浮点数,然后再将其放入数组。我认为它执行的字符串添加操作类似6+6=66,然后是66/2 = 33。 2和2的情况类似。