Math.pow 根据 java 版本产生不同的结果
2022-09-01 05:12:59
我在 JDK 版本 1.7.0_60 上运行以下代码:
System.out.println(Math.pow(1.5476348320352065, (0.3333333333333333)));
其结果是 :1.1567055833133086
我在JDK版本1.7.0上运行完全相同的代码。
其结果是 :1.1567055833133089
我知道double不是无限精确的,但是java规范中是否有导致差异的变化?
PS:因为我们使用遗留系统,所以大十进制不是一个选项。
编辑:我能够追踪更改的时间:它是在JDK版本1.7.0_40中引入的(与版本1.7.0_25相比)。