浮點型的三個特殊值 Double.NEGATIVE_INFINITY 負無窮 Double.POSITIVE_INFINITY 正無窮 Double.NaN 非值
阿新 • • 發佈:2018-12-28
浮點型的三個特殊值
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是非值