码迷,mamicode.com
首页 > 其他好文 > 详细

存疑:为什么多加了几次0.1以后结果就出现偏差了?

时间:2015-11-05 20:32:30      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

运行下面这段程序:

public static void main(String args[]){
double i;
for(i=0; i!=10; i+=0.1){
System.out.printf("%f\n",i);
}
}

抛开无限循环不说,这个程序直观看来应该是输出除了10.0以外的,大于等于0的形如0.9,1.1这样的数字。

然而运行结果中出现了10.0

好奇怪,debug的时候发现,不是每次自加0.1都是正好加上去0.1,有时候会多一点有时候又会少一点。

有图为证:

技术分享

 

没想明白这是怎么回事,难道是浮点数计算误差?

存疑:为什么多加了几次0.1以后结果就出现偏差了?

标签:

原文地址:http://www.cnblogs.com/RainandTears/p/4940498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!