我实现了一个算法,其中我需要高小数精度,所以我使用的是BigDecimal,但Math.exp只接受double参数。
值在运行时生成,并作为参数传递给Math.exp 即
BigDecimal mathEx = new BigDecimal( Math.exp(xMulXPoint5.doubleValue()));
Where xMulXPoint5 = -347222407183165.419208175
mathEx结果值非常小,结果显示为零而不是实际的小值。
任何人都可以建议任何其他方法来解决这个问题。
答案 0 :(得分:1)
您可以使用BigDecimal定义自己的exp函数,然后使用它,而不是Math.exp
我找到了这个。也许这个帖子会有所帮助
BigDecimal Euler's number calculation to emulate Math.exp(double a)
希望有所帮助