当前位置: 代码迷 >> J2SE >> eclipse计算二的64方和计算器计算的不一样
  详细解决方案

eclipse计算二的64方和计算器计算的不一样

热度:4403   发布时间:2013-02-25 00:00:00.0
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越界
  相关解决方案