Java中NAN與INFINITY參與運算的情況
阿新 • • 發佈:2019-01-25
java浮點數運算中有兩個特殊的情況:NAN、INFINITY。
Nan:不是一個數
Infinity:無窮大
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=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
我在網上找到了一篇關於Java中的NAN和INFINITY的文章,如果想進一步瞭解,可以點選連結https://blog.csdn.net/u014591781/article/details/52904867
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 = 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);
}
}