float a = 1.0f - 0.9f; float b = 0.9f - 0.8f; if (a == b){ System.out.println(true); }else { System.out.println(false); }
请问:输出的结果是true? 还是false?
呃,那就直接看结果叭。
答案是:false
那么?如果变量的类型是double呢?
double c = 1.0 - 0.9; double d = 0.9 - 0.8; if (c == d){ System.out.println(true); }else { System.out.println(false); }
答案是:true
这是为什么?结果不都是0.1吗?难道我算术没学好?
首先,我们看一下,float类型的变量运算结果的本质是什么?
float a = 1.0f - 0.9f;
System.out.println("a = "+a);
float b = 0.9f - 0.8f;
System.out.println("b = "+b);
if (a == b){
System.out.println(true);
}else {
System.out.println(false);
}