| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 476 人关注过本帖
标题:Java中的NaN和Infinity
只看楼主 加入收藏
shitainong
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2012-7-6
结帖率:0
收藏
 问题点数:0 回复次数:1 
Java中的NaN和Infinity
声明并初始化一个变量i,使得以下语句块为无限循环:
[java] view plaincopyprint?
while(i != i) {  
      
}  
首先我们要知道==是否满足自反性,如果满足,那么该题无解。
事实上==只满足对称性,不满足自反性,一个反例是NaN
NaN是Not a Number的缩写,即不是一个数字。它不等于任何浮点数,包括自己。
我们可以得到这样一个等式:
NaN != NaN
那么如何得到一个NaN呢?
[java] view plaincopyprint?
double i = 0.0/0.0;  
float    j  = 0.0f/0.0f;  
System.out.println(i); // NaN   
System.out.println(j); // NaN  
还可以利用类库提供的API来得到:
[java] view plaincopyprint?
Double.NaN  
Float.NaN  
在whil循环中,除了可以使用true来达到无限循环目的以外,还可以这样:
[java] view plaincopyprint?
double i = Double.NaN;  
while(i != i) {  
      
}  
浮点数除了具有NaN之外,还有另外一个特殊值:Infinity:
[java] view plaincopyprint?
double x = 1.0/0;  
System.out.println(x); // Infinity   
System.out.println(-x);  // -Infinity  
与NaN不同的是,Infinity满足自反性:
[java] view plaincopyprint?
double i = 1.0/0;  
double j = 1.0/0.0;  
System.out.println(i == j); // true  
java培训、成都php培训找最专业的成都IT培训机构成都达内。!成都java培训官网:http://www.
搜索更多相关主题的帖子: double Java 如何 
2013-04-16 17:05
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
NaN  Not a Number  不是一个数
Infinite  无限




有心者,千方百计;无心者,千难万难。
2013-04-17 20:48
快速回复:Java中的NaN和Infinity
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.079131 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved