Java中Math.exp函数的局限性

时间:2017-03-01 10:15:06

标签: java double precision bigdecimal exponent

我实现了一个算法,其中我需要高小数精度,所以我使用的是BigDecimal,但Math.exp只接受double参数。

值在运行时生成,并作为参数传递给Math.exp 即

BigDecimal mathEx = new BigDecimal( Math.exp(xMulXPoint5.doubleValue()));
Where xMulXPoint5 = -347222407183165.419208175

mathEx结果值非常小,结果显示为零而不是实际的小值。

任何人都可以建议任何其他方法来解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用BigDecimal定义自己的exp函数,然后使用它,而不是Math.exp

我找到了这个。也许这个帖子会有所帮助

BigDecimal Euler's number calculation to emulate Math.exp(double a)

希望有所帮助