Java中,两个浮点型比较是否相等

    xiaoxiao2021-03-25  103

    public class Test{     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));     }

    }

    执行结果:

    -------使用“==”符号比较是否相等:true -------使用“Math.abs()”方法比较是否相等:false -------使用“Math.abs()”方法比较是否相等(比较宽容的限制):true -------比较大小“<”:false -------比较大小“>”:false

    因此一般不会直接用“==”或者“!=”对两个浮点数进行比较

    判断两个浮点数float a 与 float b 是否相等可以根据他们的差的绝对值是否大于0来进行判断。

    判断相等:

    if(Math.abs(a-b)<=0){相等}

    或者

    if(!Math.abs(a-b)>0){相等}

    判断不等:

    if(Math.abs(a-b)>0){不相等}

    转载请注明原文地址: https://ju.6miu.com/read-20315.html

    最新回复(0)