JavaScript Math.random()
函数的精度是多少?
答案 0 :(得分:9)
Math.random()
生成一个16位小数的浮点数,大于或等于零且小于1。
答案 1 :(得分:7)
它取决于浏览器/ JavaScript引擎。
最大可能的精度是52位,因为Math.random
返回0(包括)和1(不包括)之间的双精度浮点。这个最大值大约相当于16位小数,见Sly1024的答案。
实际上,许多浏览器的精度较低。这似乎是目前的状态:
多次运行以下代码,您将看到Chrome和Safari中的尾随21位始终为0。
console.log((Math.random() * Math.pow(2,53)).toString(2));
答案 2 :(得分:3)
根据维基百科:Double-precision floating-point format 小数部分是52位,我们知道数字将介于0和1之间(我认为不包括1),因此指数为-1,这使我们得到52个随机位。
52个随机位给出52位精度,其在10的基数约为
52*log10(2) ~= 15.653559774527022151114422525674 digits.