如果我在我的 HTML 页面上书写document.write(Math.sqrt(2))
,我会得到1.4142135623730951
.
有什么方法可以让方法输出多于 16 位小数?
如果我在我的 HTML 页面上书写document.write(Math.sqrt(2))
,我会得到1.4142135623730951
.
有什么方法可以让方法输出多于 16 位小数?
不,那里没有。Javascript 中的数学运算是使用 64 位浮点值执行的,16 位的精度正好在它们可以准确表示的极限附近。
要获得更多位数的结果,您需要使用任意精度的数学库。不过,对于支持平方根的 Javascript,我不知道其中的任何一种——我能够找到的一种副手(Big.js)只支持加法、减法和比较。
您可以使用toPrecision
. 但是,ECMA 只要求最高 21 位有效数字的精度:
console.log(Math.sqrt(2).toPrecision(21))
但请记住,计算机上实际值的精度有一些限制(请参阅黄昏的回答)。
也可以看看: