Java中NAN与INFINITY参与运算的情况

java浮点数运算中有两个特殊的情况:NAN、INFINITY。
Nan:不是一个数
Infinity:无穷大

NAN与INFINITY参与运算的情况:

1)非零浮点数被零除的无穷值,即
1.0 /0 = Infinity, -1.0/0 = -Infinity

2)零浮点数除以零=Nan,即0.0/0=Nan

3)NaN参与的运算都为NaN,即
NaN+NaN = NaN, 
NaN-NaN = NaN, 
NaN * NaN = NaN, 
NaN / NaN = NaN,
NaN / 1.0 = NaN, 
NaN / Infinity = NaN, 
NaN / -Infinity = NaN

4)Infinity与-Infinity参与的运算,即
Infinity + Infinity = Infinity, 

Infinity-Infinity = NaN

Infinity*Infinity=Infinity, 
Infinity / Infinity = NaN

-Infinity + -Infinity = -Infinity, 
-Infinity - -Infinity = NaN,

-Infinity * -Infinity = Infinity, 
-Infinity / -Infinity = NaN

Infinity / 0 = Infinity, 
-Infinity / 0 = -Infinity

Infinity / 1.0 = Infinity, 
Infinity / -1.0 = -Infinity,
-Infinity / 1.0 = -Infinity, 
-Infinity / -1.0 = Infinity

5)有限数与Infinity、-Infinity的运算:
1.0 / Infinity = 0.0, 
-1.0 / Infinity = 0.0, 
1.0 / -Infinity = -0.0, 
-1.0/Infinity = -0.0

6)零与Infinity、-Infinity的运算:
0 / Infinity = 0.0, 
0 / -Infinity = -0.0


编码测试:

NanInfinity.java运行结果,如图1所示,


图1

程序源代码:

public class NanInfinity
{
public static void main(String[] args)
{
double dPos = Double.POSITIVE_INFINITY;
double dNeg=Double.NEGATIVE_INFINITY;

System.out.println(dPos);
System.out.println(dNeg);

System.out.println(dPos*dPos);
System.out.println(dPos/dPos);
System.out.println(dPos*0);
System.out.println(dPos/0);
System.out.println(dPos*1);
System.out.println(dPos/1);
System.out.println(0/dPos);
System.out.println(1/dPos);
}
}

我在网上找到了一篇关于Java中的NAN和INFINITY的文章,如果想进一步了解,可以点击链接https://blog.csdn.net/u014591781/article/details/52904867

猜你喜欢

转载自blog.csdn.net/m0_37732829/article/details/80547157