当我使用Math.pow(9, 18) =150094635296999136
当我使用网络计算器 9^18 = 150094635296999121 ( http://web2.0calc.com/ )
当我使用谷歌计算器时 9^18 = 1.50094635 × 10^17
为什么不一样?
当我使用Math.pow(9, 18) =150094635296999136
当我使用网络计算器 9^18 = 150094635296999121 ( http://web2.0calc.com/ )
当我使用谷歌计算器时 9^18 = 1.50094635 × 10^17
为什么不一样?
在该范围内,连续double
值之间的差值为 32。 150094635296999121 是整数的正确答案,但该数字不能精确表示为 a double
。
您可以使用BigInteger
来获得确切的答案:
Math.pow(9, 18) == 150094635296999136
BigInteger.valueOf(9).pow(18) == 150094635296999121