在JavaScript中,函数alert((3*3*Math.sqrt(2))/13)打印0.9790709277967582,这只是表达式的真实值的近似值。有没有办法在这样的JavaScript中执行算术运算而又不损失精度,从而使3*3*sqrt(2))/13之类的东西输出精确的值9*(2)^(1/2)/13,而不是近似的0.9790709277967582

最佳答案

这里有一个库: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.

关于javascript - JavaScript中的无限精度算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14783631/

10-12 15:04
查看更多