java - Java中Math.exp函数的限制

标签 java double precision bigdecimal exponent

我正在实现一个算法,其中需要高小数精度,因此我使用 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/

相关文章:

使用 byte[] 的 Java 快速 atoi

java - 使用 java.applet 类在 Java 中播放声音

java - android ArrayAdapter 要求资源 ID 是微调器中的 TextView

double - 通过 Java Stream 总结 ArrayList<Double>

c# - 在 C# 中使用 Double.TryParse 方法转换字符串

php - MySQL 中的 float 不正确

android - Android GPS 的相对精度

java - Angular POST RESTful API 到 Ejb 导致 404 未找到错误

Java 正在自行对我的 double 组进行排序。为什么?

java - 如何以可变精度进行 Java String.format?