Java中的NaN和Infinity
2013-03-04 17:17
337 查看
声明并初始化一个变量i,使得以下语句块为无限循环:
首先我们要知道==是否满足自反性,如果满足,那么该题无解。
事实上==只满足对称性,不满足自反性,一个反例是NaN
NaN是Not a Number的缩写,即不是一个数字。它不等于任何浮点数,包括自己。
我们可以得到这样一个等式:
NaN != NaN
那么如何得到一个NaN呢?
还可以利用类库提供的API来得到:
在whil循环中,除了可以使用true来达到无限循环目的以外,还可以这样:
浮点数除了具有NaN之外,还有另外一个特殊值:Infinity:
与NaN不同的是,Infinity满足自反性:
while(i != i) { }
首先我们要知道==是否满足自反性,如果满足,那么该题无解。
事实上==只满足对称性,不满足自反性,一个反例是NaN
NaN是Not a Number的缩写,即不是一个数字。它不等于任何浮点数,包括自己。
我们可以得到这样一个等式:
NaN != NaN
那么如何得到一个NaN呢?
double i = 0.0/0.0; float j = 0.0f/0.0f; System.out.println(i); // NaN System.out.println(j); // NaN
还可以利用类库提供的API来得到:
Double.NaN Float.NaN
在whil循环中,除了可以使用true来达到无限循环目的以外,还可以这样:
double i = Double.NaN; while(i != i) { }
浮点数除了具有NaN之外,还有另外一个特殊值:Infinity:
double x = 1.0/0; System.out.println(x); // Infinity System.out.println(-x); // -Infinity
与NaN不同的是,Infinity满足自反性:
double i = 1.0/0; double j = 1.0/0.0; System.out.println(i == j); // true
相关文章推荐
- Java中的Infinity和NaN
- java中的NAN和INFINITY
- Scala和Java中的Infinity和NaN
- Java中的Infinity和NaN
- Java 中的NAN 和 infinity
- Java中的Infinity和NaN
- java中Infinity和NAN
- Java中的NAN和INFINITY
- java中的NAN和INFINITY
- Java中的Infinity和NaN
- JAVA-数值计算中的特殊情况,NAN,Infinity
- Java浮点运算中特殊的情况NAN与Infinity
- 关于Java中NaN,Infinity,-Infinity参与算术运算的各种情况
- java NAN 和 INFINITY
- Java中的Infinity和NaN
- Java中的Infinity和NaN
- 奇怪的js NaN and Infinity
- JavaScript NaN和Infinity特殊值 [译]
- NaN和Infinity
- Java中遭遇NaN