1. 程式人生 > >浮點型的三個特殊值 Double.NEGATIVE_INFINITY 負無窮 Double.POSITIVE_INFINITY 正無窮 Double.NaN 非值

浮點型的三個特殊值 Double.NEGATIVE_INFINITY 負無窮 Double.POSITIVE_INFINITY 正無窮 Double.NaN 非值

浮點型的三個特殊值

Double.NEGATIVE_INFINITY 負無窮

Double.POSITIVE_INFINITY 正無窮

Double.NaN 非值

    public void testFun1() {
        //無窮  --一個浮點型(無論是基本型別還是引用型別)的正數除以0是無窮大,
        float a = (float) -10.22 / 0;

        System.out.println(a);
        if (Double.isInfinite(a) && a < 0.0) {
            System.out.println("a的值是負無窮");
        }
        if (Double.NEGATIVE_INFINITY == a) {
            System.out.println("----a的值是負無窮");
        }

        /*Double b=1029.98/0;*/
        Float b = new Float(1029.98 / 0);//float型別也是這麼比較
        System.out.println(b);
        if (Double.isInfinite(b) && b > 0.0) {
            System.out.println("b的值是正無窮");
        }
        if (Double.POSITIVE_INFINITY == b) {
            System.out.println("-----b的值是正無窮");
        }

        //非值 0.0/0或者負數的平方根

        Double c = 0.0 / 0;
        System.out.println("c=0.0/0=" + c);
        Double d = Math.sqrt(-9.0);
        System.out.println("d=Math.sqrt(-9.0)=" + Math.sqrt(-9.0));
        /*Double.isNaN();判斷是否是非值*/
        if (Double.isNaN(c)) {
            System.out.println("c是非值");
        }
        if (Double.isNaN(d)) {
            System.out.println("d是非值");
        }
//        if(Double.NaN==d){
//            System.out.println("d是非值");
//        }    這種寫法是錯誤的
    }

結果是

-Infinity

a的值是負無窮

----a的值是負無窮

Infinity

b的值是正無窮

-----b的值是正無窮

c=0.0/0=NaN

d=Math.sqrt(-9.0)=NaN

c是非值

d是非值