计算机进行小数运算会出错

float sum=0;

for(int i=0;i<100;i++)

  sum+=0.1;

System.out.print(sum);//10.000002

 

原因:计算机计算数字时,使用的是二进制,而十进制的0.1,无法用二进制精确表示,是一个二进制循环数,0.00011001100……(1100循环),而计算机对此二进制进行截取后,进行累加操作,必然会出现结果不对的情况。

posted @ 2015-09-10 09:58  mahuan2  阅读(152)  评论(0编辑  收藏  举报