我正在实现一种算法,在这个算法中我需要很高的十进制精度,所以我使用的是BigDecimal,但是Math.exp只接受双倍的参数。
值在运行时生成,并作为参数传递给Math.exp,即
BigDecimal mathEx = new BigDecimal( Math.exp(xMulXPoint5.doubleValue()));
Where xMulXPoint5 = -347222407183165.419208175mathEx结果值非常小,结果显示为零,而不是实际的小值。
有谁能建议一下解决这个问题的其他方法吗?
发布于 2017-03-01 10:28:12
您可以使用BigDecimal定义自己的exp函数,然后使用它代替Math.exp。
我找到了这个。也许这条线能帮上忙
BigDecimal Euler's number calculation to emulate Math.exp(double a)
希望它能帮上忙
https://stackoverflow.com/questions/42528920
复制相似问题