来自 MDN(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random):
Math.random
返回范围内的浮点伪随机数,
[0, 1)
即从 0(包括)到但不包括 1(不包括),然后您可以将其缩放到所需的范围。
但是,它说:
请注意,由于 JavaScript 中的数字是具有舍入到最近偶数行为的 IEEE 754 浮点数,因此这些范围(不包括其
Math.random()
本身的范围)并不精确,并且取决于边界,在极少数情况下(在2^62 中的 1 的顺序)来计算通常排除的上限。
我应该考虑这些情况吗?例如,使用...
Math.min(max, Math.floor(Math.random() * (max - min + 1)) + min);
...代替...
Math.floor(Math.random() * (max - min + 1)) + min;
...?