В чем разница между Math.pow(9, 18) и 9^18

Когда я использую Math.pow(9, 18) =150094635296999136

когда я использую веб-калькулятор 9 ^ 18 = 150094635296999121 ( http://web2.0calc.com/)

когда я использую калькулятор Google 9^18 = 1.50094635 × 10^17

почему это отличается?

1 ответ

В этом диапазоне разница между последовательными double значение равно 32. 150094635296999121 - правильный ответ в виде целого числа, но это число не может быть точно представлено как double,

Ты можешь использовать BigInteger чтобы получить точный ответ:

Math.pow(9, 18) == 150094635296999136
BigInteger.valueOf(9).pow(18) == 150094635296999121
Другие вопросы по тегам