使JavaScript Math.sqrt()打印更多数字

时间:2012-06-30 18:59:55

标签: javascript math.sqrt

如果我在HTML页面上写document.write(Math.sqrt(2)),我会收到1.4142135623730951。有没有办法让方法输出超过16位小数?

2 个答案:

答案 0 :(得分:6)

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

要获得结果的更多数字,您需要使用任意精度的数学库。我不知道任何这些支持平方根的Javascript, - 我能够随意找到的那个(Big.js)只支持加法,减法和比较。

答案 1 :(得分:1)

您可以使用toPrecision。但是,ECMA要求的精确度最多为21位有效数字:

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

但请记住,计算机上实际值的精确度有一些限制(参见duskwuff's answer)。

另见: