`.toPrecision()`方法如何知道PI的第16、17和18位数字?

3
.toPrecision() 方法如何知道 PI 的第 16、17 和 18 位数字?

var x = Math.PI;
console.log(x);

var y = new Number(x);
console.log( y.toPrecision(19) );


实际的圆周率值为3.14159265358979323846264338327950288419716939937510582...,因此3.141592653589793116的近似值是错误的 - Dmitry Bychenko
它不行;你得到的数字是错误的。 - user2357112
2个回答

2

实际的圆周率值为

3.14159265358979323846264338327950288419716939937510582...

3.141592653589793116

而Javascript的近似值是完全错误的。没有什么魔法: .toPrecision() 不知道圆周率的第16、17、18位数字。


1
当你将π截断到小数点后51位(相应于分数7074237752028440/2251799813685248),你会得到这个值。
3.1415926535897931159979634685442...

这似乎是一个匹配的结果(四舍五入后)。

当你推断出整数部分后,双精度浮点表示中剩余的有效位数为51(尾数有53位)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接