Jav*_*ser 8 java floating-accuracy pow
我用的时候 Math.pow(9, 18) =150094635296999136
当我使用网络计算器9 ^ 18 = 150094635296999121(http://web2.0calc.com/)
当我使用谷歌计算器9 ^ 18 = 1.50094635×10 ^ 17
为什么会有所不同?
Jos*_*Lee 16
在该范围内,连续double值之间的差值为32. 150094635296999121是一个整数的正确答案,但该数字不能精确表示为a double.
您可以BigInteger用来获得确切的答案:
Math.pow(9, 18) == 150094635296999136
BigInteger.valueOf(9).pow(18) == 150094635296999121
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1170 次 |
| 最近记录: |