java - 欧拉数 java 中的精度

标签 java

我正在编写一个计算欧拉数的代码,但我没有很好的精度。如果我的 i(变量到阶乘)是 40,代码将返回无穷大,但是,20 或 30 代码会正确返回数字

我的代码

double e = 1;
      for (int i = 1; i < 18; i++)
      {
           double j = (double)(E.factorial(i));
           double k = 1 / j;
           e = e + k;
      }

最佳答案

您应该将 double 替换为 BigDecimal。这将使代码更加精确。

BigDecimal e = 0;
BigDecimal demo = 1;
    for (int i = 1; i < 400; i++) {
        e += demo;
        demo /= i;
}

Docs.oracle refer to this.

关于java - 欧拉数 java 中的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909794/

相关文章:

java - 请确认/更正此 : C++ vs Java

java - 使用 Google Play 服务作为 Android 服务,随时从任何 Activity 中获取位置

Java 在 `finally` block 后不打印消息

java - Java 中的 C/C++ 结构类比?

java - 如何从 View /内部代码访问 javax.faces.PROJECT_STAGE?

java - 为什么setBackground会覆盖其他绘图?

java - 如何使用freebase api获取一个城市的所有旅游景点?我只能从返回的 JSON 中获取 10

java - 在构建的运行时中包含 java.exe

java - 将经纬度坐标转换为 map 像素图像 X 和 Y 坐标 Java

java - 如何将数据放入 Google 应用引擎的数据存储区?