总的来说,我正在尝试制作一个接受用户标记的程序,然后吐出均值和中位数。这是我计算机科学课程的作业。
由于某些原因,当我写行时,console.log(avg);
显示NaN而不是avg变量的值。我在代码中的其他地方做错了吗?
以下是我的其余代码:
var userMarks = [];
for (var counter = 0; counter < 3; counter++) {
userMarks.push(prompt("What is your mark?"));
}
console.log(userMarks);
var sum = 0;
for (var i = 0; i < userMarks.length; i++) {
sum += parseInt(userMarks[i], 3);
}
var avg = sum / userMarks.length;
console.log(avg);
答案 0 :(得分:8)
parseInt()
需要一个radix as a second parameter,当你的意思是10时你指定了3。
sum += parseInt(userMarks[i], 10);
<强> jsFiddle example 强>
radix - 2到36之间的整数,表示基数(基数 在数学数字系统中)上述字符串。 为人类常用的十进制数字系统指定10。 始终指定此参数以消除读者的困惑和 保证可预测的行为。产生不同的实现 未指定基数时的结果不同。
答案 1 :(得分:0)
的另一个选择
sum += parseInt(useMarks[i], 10);
你可以这样做
sum += +userMarks[i];
&#39; +&#39;变量名称前的符号将尝试转换为数字。