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

运行下面这段程序:

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,有时候会多一点有时候又会少一点。

有图为证:

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

时间: 2024-08-28 05:11:56

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

加载web项目时报的错误:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4

用eclipse开发的servlet项目不能加载到tomcat7.0服务器,原因是:servlet的版本高了 <installed facet="jst.web" version="3.1"/> 只要将version="3.0"改成version="2.5",然后重启eclipse即可!!! 具体操作步骤: 找到你的eclipse:D:\eclipse\workspace-jee\项目名称\.settings\or

The Sum of 0 for four numbers(拆解加二分思想)

个人心得:单纯用二分法一直超时,后面发现我的那种方法并没有节省多少时间,后面看了大神的代码,真的是巧妙, 俩个数组分别装a+b,c+d.双指针一个指向最后,从第一个开始想加,加到刚好大于0停止,再看是否存在和为0的情况. 很巧妙,因为此时i,j所指想加刚好大于0,因为是排完序的,所以i往后面走的时候,大于j的数相加一定大于0,所以卡的非常好: 就没有再指针跳转回去了,佩服! The SUM problem can be formulated as follows: given four list

加载web项目时报的错误:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul

用eclipse开发的java项目不能加载到tomcat6.0服务器,原因是:jst.web的版本高了 <installed facet="jst.web" version="3.0"/> 只要将version="3.0"改成version="2.5",然后重启eclipse即可!!! 注意:  <installed facet="java" version="1.6"

为什么HashMap初始大小为16,为什么加载因子大小为0.75,这两个值的选取有什么特点?

内容转自:https://blog.csdn.net/Dazhu233/article/details/79596584 先看HashMap的定义: public class HashMap<K,V>extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable HashMap是AbstractMap的子类,实现了Map接口. HashMap() Constructs an empty Hash

universal-image-loader图片异步加载

编辑新增: /** 针对listview等加载优化: 监听滑动状态,来设置当前是否要进行加载图片. 滑动状态时不加载,让listview滑动更加流畅. 写法: new PauseOnScrollListener(ImageLoader.getInstance(), false, true, this); 这是一个universal-image-loader中的滑动监听,将它赋给listview的滑动监听即可. 比如:listview.setOnScrollListener( new PauseO

jquery下拉加载更多

var end=1; $(window).bind("scroll",function(){ if($(document).scrollTop() + $(window).height() > $(document).height() - 100 && end != 0)// 接近底部100px { $('#next').html('加载中...'); end=0; console.log("1"); setTimeout(function()

Android之使用帧动画实现自定义loading加载布局

在项目开发过程中,我们总是需要自定义一些和项目风格类似的loading页面,这时候我们可以考虑使用帧动画来完成这一功能 假如我们要实现如下图所示的帧动画加载效果: 我们可以选取三张帧图片: 具体在帧动画中怎么使用? An AnimationDrawable defined in XML consists of a single <animation-list> element, and a series of nested<item> tags. Each item defines

android 禁止viewpager预加载

ViewPager这个控件相信每一个做android的都用过,而且一定用过,viewpager是可以前后滑动的,这在很多app中引导页中用过,大家也知道它是带缓存的,现在新建一个项目 viewpagertest, package com.example.viewpagertest; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.os.IBinder

Oracle取月份-不带前面的0

出处:http://www.2cto.com/database/201208/145611.html 今天碰到只要取月份和天数,如果月份前面有0要去掉0.比如说2010-01-08 ,需要的结果是1-8. 引出了一系列的sql语句 第一: 利用to_number的函数转换自动截0 select to_number(to_char(sysdate,'mm'))||'-'||to_number(to_char(sysdate,'dd')) from dual; 第二: 利用ltrim函数加固定参数去