Mar*_*rco 12 java precision trigonometry bigdecimal
我正在开发一个能够像String一样评估String的数学解析器'5+b*sqrt(c^2)'.我正在使用ANTLR进行解析并取得良好进展.现在我摔倒在Java类上BigDecimal并且想:嘿,为什么不在这里考虑精度.
我的问题是Java API不提供BigDecimal类似的三角函数方法java.lang.Math.你知道是否有像Apache Commons这样的好的数学库可以解决这个问题吗?
其他问题是如何实现功率方法,以便我可以用BigDecimals 计算4.9 ^ 1.4 .这可能吗?
关于数值计算的书籍请求也受到赞赏.
BigDecimal不提供这些方法,因为BigDecimal模型是有理数.三角函数,平方根和非整数的幂(我猜包括平方根)都会产生无理数.
这些可以用任意精度数近似,但精确值不能存储在a中BigDecimal.这不是他们真正想要的.如果你无论如何都要接近某些东西,你也可以使用一个double.