在使用`Math.random()`时,我应该考虑获得排除上限的1 ^ 2 ^ 62的可能性吗?

Ori*_*iol 8 javascript random

来自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()自身的范围)并不精确,并且在极少数情况下(取决于边界)顺序为1 in 2 ^ 62)来计算通常排除的上限.

我应该考虑那些案件吗?例如,使用......

Math.min(max, Math.floor(Math.random() * (max - min + 1)) + min);
Run Code Online (Sandbox Code Playgroud)

...代替...

Math.floor(Math.random() * (max - min + 1)) + min;
Run Code Online (Sandbox Code Playgroud)

...?

Lee*_*ker 6

如果你每秒十亿次调用Math.random(),你应该每150年左右就会遇到这个错误.而我给的Javascript 方式太多功劳性能.:-)