在JavaScript中,函数alert((3*3*Math.sqrt(2))/13)
打印0.9790709277967582
,它只是表达式真值的近似值。有没有办法在像这样的JavaScript中执行算术运算而不会损失精度,因此3*3*sqrt(2))/13
之类的东西会输出9*(2)^(1/2)/13
,这是确切的值,而不是0.9790709277967582
,只是近似值?
答案 0 :(得分:1)
这里有一个库:https://github.com/whatgoodisaroad/Big-js/downloads
它有一堆像myNum.add(otherNum)
这样的函数,所以它可能有点难用。但是,如果您需要无限精度,则必须这样做。
示例:
var number1 = new Big("12.00000000000000005");
var number2 = new Big("12");
number1.lessThanOrEqualTo(number2); // False, like it should be.