Joh*_*nna 10 java floating-point nan infinity
我们如何在我们的代码中使用它们,以及什么会导致NaN(不是数字)?
coo*_*ird 15
0/0
.并且来自Float
类的规范的常量:
更多信息可以在维基百科的IEEE-754页面中找到.
这是一个用来说明三个常量的小程序:
System.out.println(0f / 0f);
System.out.println(1f / 0f);
System.out.println(-1f / 0f);
Run Code Online (Sandbox Code Playgroud)
输出:
NaN
Infinity
-Infinity
Run Code Online (Sandbox Code Playgroud)
Cam*_*ron 11
如果您想要了解有关Java中浮点数的更多信息,这可能是一个很好的参考.
正无穷大是一个非常大的正数,无法正常表示.负无穷大是一个负数,它无法正常表示.NaN表示"非数字"并且是由数学运算产生的,该数学运算不产生数字,如0除以0.
在Java中,Double和Float类都有常量来表示所有三种情况.它们是POSITIVE_INFINITY,NEGATIVE_INFINITY和NaN.
另外考虑一下:
double a = Math.pow(10, 600) - Math.pow(10, 600); //==NaN
Run Code Online (Sandbox Code Playgroud)
在数学上,每个人都可以看到它是0.但是对于机器来说,它是一个"无限" - "无限"(相同等级),它确实是NaN.
归档时间: |
|
查看次数: |
18727 次 |
最近记录: |