浮点类型数的等值问题 问题引入 问题1:判断两个float类型数值是否相等 float a = 125565512445f; float b = a+1; System.out.println(a==b); 输出结果:true 原因:float类型a的数值非常大,而同类型的b与它只相差1,因为float类型具有舍入误差,会近似认为两数相等。 问题二: float f = 0.1f; double e = 1.0/10; System.out.println(f==e); 输出结果:false 原因:float类型和double类型精度不同不能直接比较 总结:尽量避免浮点数进行比较