当前位置:  开发笔记 > 编程语言 > 正文

这三个特殊的浮点值意味着什么:正无穷大,负无穷大,NaN?

如何解决《这三个特殊的浮点值意味着什么:正无穷大,负无穷大,NaN?》经验,为你挑选了2个好方法。

我们如何在我们的代码中使用它们,以及什么会导致NaN(不是数字)?



1> coobird..:

正无穷大意味着向正方向转向无穷大 - 进入正向大小越来越大的值.

负无穷大意味着在负方向上进入无穷大 - 进入负向方向上越来越大的值.

非数字(NaN)是未定义的,例如结果0/0.

并且来自Float类的规范的常量:

Float.NEGATIVE_INFINITY

Float.POSITIVE_INFINITY

Float.NaN

更多信息可以在维基百科的IEEE-754页面中找到.

这是一个用来说明三个常量的小程序:

System.out.println(0f / 0f);
System.out.println(1f / 0f);
System.out.println(-1f / 0f);

输出:

NaN
Infinity
-Infinity



2> Cameron..:

如果您想要了解有关Java中浮点数的更多信息,这可能是一个很好的参考.

正无穷大是一个非常大的正数,无法正常表示.负无穷大是一个负数,它无法正常表示.NaN表示"非数字"并且是由数学运算产生的,该数学运算不产生数字,如0除以0.

在Java中,Double和Float类都有常量来表示所有三种情况.它们是POSITIVE_INFINITY,NEGATIVE_INFINITY和NaN.

另外考虑一下:

double a = Math.pow(10, 600) - Math.pow(10, 600); //==NaN

在数学上,每个人都可以看到它是0.但是对于机器来说,它是一个"无限" - "无限"(相同等级),它确实是NaN.


仅供参考,链接陈旧.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有