Java 小数之间使用==比较是不靠谱的,通常两小数误差不超过0.00001就说这两个数是相等的。
很明显可以看出1-0.9!=0.1,但是这个不等的结果肯定是错的
造成这个结果的原因就是小数在Java中不能够精确表示,导致小数运算往往存在误差
所以在Java中比较两个小数是否相等,往往比较他们的误差是否超过0.00001来判断
最后附上源码,有兴趣可以验证一下
//小数之间直接比较
doubled=1-0.9;
System.out.println(d);//1-0.9=0.09999999999999998
System.out.println(d==0.1);//false
//通常情况下小数之间的比较
doubledd=1-0.9;
if(Math. abs (dd-0.1)<0.00001){
System.out.println("1-0.9=0.1");
}