Я запускаю следующий код на 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: Поскольку мы используем устаревшую систему, Big Decimal не является вариантом.
Изменить: мне удалось отследить время изменения: оно было введено в версии JDK версии 1.7.0_40 (по сравнению с версией 1.7.0_25).