小编And*_*elf的帖子

Java 8 和 Java 13 中的 Math.pow() 返回不同的结果

以下代码在 Java 8 和 Java 11 上返回不同的结果。

class Playground {
    public static void main(String[ ] args) {
        long x = 29218;
        long q = 4761432;
        double ret = Math.pow(1.0 + (double) x / q, 0.0005);
        System.out.println("val = " + String.format("%.24f", ret));
    }
}
Run Code Online (Sandbox Code Playgroud)

爪哇 8:

val = 1.000003058823805400000000
Run Code Online (Sandbox Code Playgroud)

Java 11:(结果与 Python、Rust 相同)

val = 1.000003058823805100000000
Run Code Online (Sandbox Code Playgroud)

这些问题是:

  • 任何描述这种行为的文档?
  • 如何实现 Java 8 Math.pow()在 Python 中?
  • 如何确保与使用 Java 8 库的旧程序严格一致?

java math jvm

2
推荐指数
2
解决办法
282
查看次数

标签 统计

java ×1

jvm ×1

math ×1