【发布时间】:2015-05-19 10:57:32
【问题描述】:
我在调用我在数字框中输入的值时遇到问题(我不知道我应该怎么称呼它......如果有一个文本框,应该有一个数字框。哈哈)。如果我输入“123456”,sum 的值应该是“21”,但结果是 sum 的值是“0123456”。
<input type="number" name="user" id="input" maxlength="6" size="6" required>
<input type="button" onClick="Calculate()" value="Calculate">
<script type="text/javascript">
function Calculate(){
var user = [];
user=document.getElementById("input").value;
if(user.length==6){
var sum=0;
for (i=0;i<user.length;i++){
sum=sum+user[i];
}
var ave=sum/6;
window.alert("Sum is: "+sum);
window.alert("Average is: "+ave);
}
else
window.alert("Please input EXACTLY 6 numbers.");
}
</script>
【问题讨论】:
-
您正在循环输入
123456的每个数字,sum的默认值为 0,因此在第一个循环执行中,将在第一个数组前面放置一个0,将其更改为 @987654325 @ -
的确如此,但他的问题不是前面有一个0,而是他把一个字符串串联在一起而不是相加。
-
@AR7 正确,这不是唯一的问题,但这是此函数的第一个问题,因为您已经提交了将字符串转换为整数的答案,所以我没有看到太多意义在说同样的话。我也很困惑为什么 123456 除以 6 = 21..... 123456/6=20576。
标签: javascript arrays input types numbers