关于java中的isInfinite()和isNaN()的说明

各位大侠可以举关于使用isInfinite()和isNaN()的几个例子吗?我看有的书上用如下几个语句来实现这两个方法floatf1=newfloat(1/0.);//请... 各位大侠 可以举关于使用isInfinite()和isNaN()的几个例子吗?
我看有的书上用如下几个语句来实现这两个方法
float f1=new float(1/0.);//请问这个语句是如何实现的呢?分母不可以使用0?
float f2=new float(0/0.);//请问这个语句是如何实现的呢?分子、分母不可以使用0?
System.out.println(f1.isNaN());
System.out.println(f2.isNaN);
展开
 我来答
akfucc
推荐于2016-02-28 · TA获得超过5454个赞
知道大有可为答主
回答量:1771
采纳率:0%
帮助的人:2204万
展开全部
先对isNan说说

以下转自《JAVA解惑》一书
IEEE 754 浮点算术保留了一个特殊的值用来表示一个不是数字的数量[IEEE 754]。这个值就是 NaN(“不是一个数字(Not a Number)”的缩写),对于所有没有良好的数字定义的浮点计算,例如 0.0/0.0,其值都是它。规范中描述道,NaN 不等于任何浮点数值,包括它自身在内[JLS 15.21.1]。 你可以用任何计算结果为 NaN 的浮点算术表达式来初始化 i,例如:
double i = 0.0 / 0.0;
同样,为了表达清晰,你可以使用标准类库提供的常量:
double i = Double.NaN;
NaN 还有其他的惊人之处。任何浮点操作,只要它的一个或多个操作数为 NaN,那么其结果为 NaN。这条规则是非常合理的,但是它却具有奇怪的结果。

下面的程序将打印 false:
class Test {
public static void main(String[] args) {
double i = 0.0 / 0.0;
System.out.println(i - i == 0);
}
}
这条计算 NaN 的规则所基于的原理是:一旦一个计算产生了 NaN,它就被损坏了,没有任何更进一步的计算可以修复这样的损坏。NaN 值意图使受损的计算继续执行下去,直到方便处理这种情况的地方为止。 总之,float 和 double 类型都有一个特殊的 NaN 值,用来表示不是数字的数量。对于涉及 NaN 值的计算,其规则很简单也很明智,但是这些规则的结果可能是违背直觉的。
===========================================

一般在计算的时候,这两个只是在计算的时候,不想进行判断的时候(比如不想判断被除数是否为0),只要结果isNan就说明结果不对了
lyz810
推荐于2018-03-04 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31779
前端开发工程师

向TA提问 私信TA
展开全部
public boolean isInfinite()
如果此对象表示的值是正无穷大或负无穷大,则返回 true;否则返回
false。
public boolean isNaN()

如果此值是一个非数字 (NaN) 值,则返回 true,否则返回
false。
在Double和Float类中都有这两个方法,用于判断是否是无穷大及是否为非数字
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式