我正在JDK版本1.7.0_60上运行以下代码:
System.out.println(Math.pow(1.5476348320352065, (0.3333333333333333)));
结果是: 1.1567055833133086我正在运行完全相同的代码,使用JDK版本1.7.0。
结果是:1.1567055833133089。
我知道double不是无限精确的,但是Java规范中是否有导致这种差异的更改?
备注:由于我们使用遗留系统,Big Decimal不是一个选项。
编辑:我能够追踪到更改的时间:它是在JDK版本1.7.0_40中引入的(与版本1.7.0_25相比)。