- Double.NEGATIVE_INFINITY 负无穷
- Double.POSITIVE_INFINITY 正无穷
- Double.NaN 非数
注意:浮点数才有无穷的概念,整数是没有的
比如:
int a = 1/0;//直接报错
抛出运算异常:Exception in thread "main" java.lang.ArithmeticException: / by zero
float m = (float)1.0/0;
结果:Infinity
double a = -10.22 / 0;
结果:-Infinity
示例代码:
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是非