krs*_*rs1 10
Math.random() 生成一个16位小数的浮点数,大于或等于零且小于1.
它依赖于浏览器/ JavaScript引擎.
最大可能的精度是52位,因为Math.random返回0(包括)和1(不包括)之间的双精度浮点.这个最大值大约相当于16位小数,见Sly1024的答案.
实际上,许多浏览器的精度较低.这似乎是目前的状态:
多次运行以下代码,您将看到Chrome和Safari中的尾随21位始终为0.
console.log((Math.random() * Math.pow(2,53)).toString(2));
小智 5
根据维基百科:双精度浮点格式 小数部分是 52 位,我们知道数字将在 0 和 1 之间(我认为不包括 1),所以指数是 -1,剩下 52随机位。
52 个随机位为您提供 52 位精度,以 10 为基数约为
52*log10(2) ~= 15.653559774527022151114422525674 digits.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3933 次 |
| 最近记录: |