相减,然后判断这个差是否小于某个值,这个值是你自己定义的,比如0.000001什么的,如果小于就相等,否则不等。
从网上看到的例子:
public class CompareFloat {
public static void main(String[] args){
isEqualOfFloat(10.222222225f, 10.222222229f);
}
public static void isEqualOfFloat(float a, float b){
System.out.println("-------使用==符号比较是否相等:" + (a==b));
System.out.println("-------使用Math.abs()方法比较是否相等:" + (Math.abs(a-b)>0) );
System.out.println("-------使用Math.abs()方法比较是否相等(比较宽容的限制):" + (Math.abs(a-b)<0.00000001) );
System.out.println("-------比较大小<:" + (a<b));
System.out.println("-------比较大小>:" + (a>b));
}
}
运行结果:
float类型在内存中的数可能会变,直接用==,!=比较可能会出错,因此,可用两个数相减小于某一个特定的值,就认为相等的方式来比较。
-------使用==符号比较是否相等:true
-------使用Math.abs()方法比较是否相等:false
-------使用Math.abs()方法比较是否相等(比较宽容的限制):true
-------比较大小<:false
-------比较大小>:false
另:好像double与float类型以及其他不同类型之间的比较,由于类型转换时可能有误差,直接比较可能与预期结果不同。