В чем разница между 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