Math.random()
在 JavaScript 中能够返回 1,对吗?这意味着如果我想要使用它来获取数组的随机索引,以下代码可能会失败:
var arr = [ 1, 2, 3 ],
index = Math.floor(Math.random() * arr.length);
// index could be 3?
alert(arr[index]);
有人能解释一下这个吗?
Math.random()
在 JavaScript 中能够返回 1,对吗?这意味着如果我想要使用它来获取数组的随机索引,以下代码可能会失败:
var arr = [ 1, 2, 3 ],
index = Math.floor(Math.random() * arr.length);
// index could be 3?
alert(arr[index]);
不是返回从0(含)到1(不含)的值。
参见https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random
请注意该页面中的警告:
请注意,由于 JavaScript 中的数字是 IEEE 754 浮点数,并具有舍入至最近偶数行为,这些范围(除 Math.random() 本身之外的范围)并非精确,取决于边界,在极少的情况下(在 2 的 62 次方中约为 1 次),可以计算通常排除的上限。
但是,对于这些目的,您应该没有问题。
我非常确定由
Math.random()
是小于1但等于或大于零。
在0(包括0)和1(不包括1)之间 - 不能为1
您的代码没问题
.stackexchange
吧(:? 但我应该在那里问,是的。 - Kevin