如果我在HTML页面上写document.write(Math.sqrt(2))
,我会收到1.4142135623730951。有没有办法让方法输出超过16位小数?
答案 0 :(得分:6)
不,没有。 Javascript中的数学运算使用64位浮点值执行,16位精度正好在它们可以准确表示的极限附近。
要获得结果的更多数字,您需要使用任意精度的数学库。我不知道任何这些支持平方根的Javascript, - 我能够随意找到的那个(Big.js)只支持加法,减法和比较。
答案 1 :(得分:1)
您可以使用toPrecision
。但是,ECMA要求的精确度最多为21位有效数字:
console.log(Math.sqrt(2).toPrecision(21))
但请记住,计算机上实际值的精确度有一些限制(参见duskwuff's answer)。
另见: