日期:2014-05-20  浏览次数:20702 次

eclipse计算2的64方和计算器计算的不一样
eclipse 计算 2的64次方
double sum1= 1;
for(int i=1;i<=64;i++){
sum1 = sum1*2;
}
System.out.printf("%f \n",sum1);
结果18446744073709552000.000000

用计算器计算 18446744073709551616

怎么回事  求解

------最佳解决方案--------------------
double 一共才64位,还需要有几位来存储小数点后的内容。显然,这个超出它的范围了。
------其他解决方案--------------------
这个应该使用 BigInteger了。double不精确,long越界