float sum=0;
for(int i=0;i<100;i++)
sum+=0.1;
System.out.print(sum);//10.000002
原因:计算机计算数字时,使用的是二进制,而十进制的0.1,无法用二进制精确表示,是一个二进制循环数,0.00011001100……(1100循环),而计算机对此二进制进行截取后,进行累加操作,必然会出现结果不对的情况。
计算机进行小数运算会出错
原文:http://www.cnblogs.com/mahuan2/p/4796887.html