2

如果我在我的 HTML 页面上书写document.write(Math.sqrt(2)),我会得到1.4142135623730951.

有什么方法可以让方法输出多于 16 位小数?

4

2 回答 2

6

不,那里没有。Javascript 中的数学运算是使用 64 位浮点值执行的,16 位的精度正好在它们可以准确表示的极限附近。

要获得更多位数的结果,您需要使用任意精度的数学库。不过,对于支持平方根的 Javascript,我不知道其中的任何一种——我能够找到的一种副手(Big.js)只支持加法、减法和比较。

于 2012-06-30T19:06:57.077 回答
1

您可以使用toPrecision. 但是,ECMA 只要求最高 21 位有效数字的精度:

console.log(Math.sqrt(2).toPrecision(21))

但请记住,计算机上实际值的精度有一些限制(请参阅黄昏的回答)。

也可以看看:

于 2012-06-30T19:09:08.120 回答