例如下面的例子:
如果你要使用程序比较(0.2+0.1)与0.3的大小的时候,会发现他们不相等的,通过输出0.2+0.1的结果发现:0.2+0.1=0.30000000000000004
因此,0.2+0.1就不等于0.3了,因此在程序中遇到类似的问题只能按照精度进行比较:
1 public class Main{ 2 public static void main(String[] args) { 3 System.out.println("0.2 + 0.1="+(0.2 + 0.1)); 4 System.out.println(0.2 + 0.1 == 0.3); 5 System.out.println(Math.abs(0.2 + 0.1 - 0.3) < 1E-6); 6 } 7 }
上面的程序的运行结果如下:
0.2 + 0.1=0.30000000000000004 false true
到此为止,我们以后再遇到类似于比较浮点数数值大小问题的时候,就不能直接用等号比较大小了。