什么是最小非零值Math.random()可以在javascript中返回

Mak*_*dev 10 javascript random

我知道计算机无法使用连续体.Math.random()javascript函数返回0(包含)和1(独占)之间的浮点数.我想知道它可以返回的最小非零数字是多少.什么"步骤"有这个功能?

650*_*502 6

标准肯定不会表达这个值,所以它取决于实现(并且在这一点上夸大了一点,可能甚至是一个实现,因为Math.random()仍然符合规范,因此返回0.42 ).

可以用IEEE754格式的64位标准化浮点数表示的最小正数是2 -1022,即2.2250738585072014×10 -308.

然而,浮点表示使用不同的分辨率,具体取决于幅度.

对于接近1的数字,分辨率为2 -53.可能(很可能)许多实现选择n0到2 53 -1 之间的随机整数并用作结果n/9007199254740992.

  • 这个数字看起来像这样十进制:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072014.它很小. (3认同)