在java中判断两个浮点型(float)数据是否相等的案例
示例代码:
publicstaticvoidmain(String[]args){
floata=10.222222225f;
floatb=10.222222229f;
System.out.println("使用==判断是否相等:"+(a==b));//超出精度范围
System.out.println("使用Math.abs()判断是否相等:"+(Math.abs(a-b)>=0));
System.out.println("比较a是否大于b:"+(a>b));
System.out.println("比较b是否大于a:"+(a
输出的结果:
使用==判断是否相等:true
使用Math.abs()判断是否相等:true
比较a是否大于b:false
比较b是否大于a:false
总结:
一般不会直接用"=="或者"!="对两个浮点数进行比较。
判断两个浮点数floata与floatb是否相等可以根据他们的差的绝对值与0的大小来进行判断。
Math.abs(a-b)>=0或者Math.abs(a-b)<=0则代表这两个浮点数相等
补充知识:JavaDouble浮点数比较大小&相等比较
我就废话不多说了,大家还是直接看代码吧~
publicclassDoubleComparer{
privatestaticfinaldoubleDEFAULT_DELTA=0.000001;//默认比较精度
//比较2个double值是否相等(默认精度)
publicstaticbooleanconsiderEqual(doublev1,doublev2){
returnconsiderEqual(v1,v2,DEFAULT_DELTA);
}
//比较2个double值是否相等(指定精度)
publicstaticbooleanconsiderEqual(doublev1,doublev2,doubledelta){
returnDouble.compare(v1,v2)==0||considerZero(v1-v2,delta);
}
//判断指定double是否为0(默认精度)
publicstaticbooleanconsiderZero(doublevalue){
returnconsiderZero(value,DEFAULT_DELTA);
}
//判断指定double是否为0(指定精度)
publicstaticbooleanconsiderZero(doublevalue,doubledelta){
returnMath.abs(value)<=delta;
}
}
以上这篇在java中判断两个浮点型(float)数据是否相等的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。