我正在实现一个算法,其中需要高小数精度,因此我使用 BigDecimal,但 Math.exp 只接受 double 参数。
值在运行时生成并作为参数传递给 Math.exp 即
BigDecimal mathEx = new BigDecimal( Math.exp(xMulXPoint5.doubleValue()));
Where xMulXPoint5 = -347222407183165.419208175
mathEx 结果值变得如此之小,以至于结果显示为零而不是实际的小值。
任何人都可以建议任何其他方法来解决这个问题。
最佳答案
您可以使用 BigDecimal 定义自己的 exp 函数,然后使用它来代替 Math.exp
我找到了这个。也许这个线程会有所帮助
BigDecimal Euler's number calculation to emulate Math.exp(double a)
希望对你有帮助
关于java - Java中Math.exp函数的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528920/