其他提示

  • 1/0 将导致正无穷大。
  • 0/0 将导致 Nan。您可以将 NaN 用作任何其他数字,例如:NaN+NaN=NaN, NaN+2.0=NaN
  • -1/0 将导致负无穷大。

无穷大(在java中)意味着运算的结果将是一个非常大的正数或负数,以至于无法正常表示。

这个想法是代表特殊的数字,这些数字可以自然地从“正常”的操作中产生。数字。你可以看到无限(正面和负面)为“溢出”。浮点表示的思想是,在至少某些条件下,具有由函数返回的这样的值仍然给出有意义的结果。例如,它们仍然具有一些排序属性(因此它们不会拧紧排序操作)。

Nan非常特别:如果x是Nan,则x == x是假的(这实际上是测试nan的一种方法,至少在C中,再次)。如果您不习惯浮点特性,这可能会非常混乱。除非你进行科学计算,否则我会说通过操作返回Nan是一个错误,至少在大多数情况下会浮现在脑海中。 Nan可以进行各种操作:0/0,inf - inf,inf / inf,0 * inf。 Nan也没有任何订购财产。

您可以将它们用作任何其他数字:

e.g:

float min = Float.NEGATIVE_INFINITY;
float max = Float.POSITIVE_INFINITY;
float nan = Float.NaN;
  

正无穷大是一个非常大的正数,它不可能   通常代表。负无穷大是一个如此大的负数   它无法正常表示。 NaN表示“非数字”。和   来自数学运算的结果不会产生数字 -   比如将0除以0。

这不是一个完整的答案(或者说不够清楚) - 考虑一下:

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

数学上每个人都可以看到它是0.但对于机器来说它是一个“无限”。 - “无限”(同一顺序)女巫确实是NaN ......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top