在看到以下代码片段的结果后,我对浮点数的行为感到困惑。
float var1 = 5.4f;
float var2 = 5.5f;
if(var1 == 5.4)
System.out.println("Matched");
else
System.out.println("Oops!!");
if(var2 == 5.5)
System.out.println("Matched");
else
System.out.println("Oops!!");
输出:
Oops!!
Matched
这是因为十进制数不能完全以基数 2 二进制格式表示吗?或者这是因为我将浮点类型变量与双精度类型进行比较时的精度?如果是,那么为什么它适用于下一个变量?