Java中的NaN和Infinity
程序员文章站
2024-03-25 19:09:10
...
声明并初始化一个变量i,使得以下语句块为无限循环:
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中的NaN和Infinity
-
iText 读取pdf的各级标题和标题对应页码 博客分类: 文档处理Java Web iTextword标题页码
-
javascirpt 中return ,return false 和return true的用法
-
Scala和Java中的Infinity和NaN
-
Java中的Infinity和NaN
-
iText 读取pdf的各级标题和标题对应页码 博客分类: 文档处理Java Web iTextword标题页码
-
Java中的return语句使用总结
-
Eclipse编写Word Count的JAVA程序打包到虚拟机中运行
-
关于旗正规则引擎规则中的上传和下载问题 博客分类: 旗正4.0 jsp文件上传文件下载压缩
-
Java 设置PPT形状中的文本自适应 博客分类: Java PPT javaSpire.Presentation for JavaPPT自适应形状