public class demo001 {
public static void main(String[] args) {
float a=0.1f;
double b=1/10;
System.out.println(a==b);
float a1=43353546f;
float a2=a1+1;
System.out.println(a2==a1);
}
}
如图,输出结果为下
从上面我们可以知道a和b理论上应该是相等的,可结果是false。a2明明比a1多加了一个1,他们却是相等的。说明浮点型是存在一定的问题的!
false是有限的,而且是离散的。浮点数会存在一个舍入误差。是一个大约(接近但不等于)的数。
最好避免使用浮点数进行比较。