作为数学概念,我很清楚inf
和nan
的含义。但我真正感兴趣的是它们在编程语言中的实现。
在Python中,我可以在算术和条件表达式中使用inf
和nan
,像这样:
>>> nan = float('nan')
>>> inf = float('inf')
>>> 1 + inf
inf
>>> inf + inf
inf
>>> inf - inf
nan
这让我相信Python内部有一个特殊的保留位序列,用于表示这两个数学量,没有其他数字可以占据这些位置。我的假设正确吗?请在这方面给我一些启示。
如果我的假设是正确的,那么这可以很容易地解释:
>>> inf == inf
True
然而,这不是:
>>> nan == nan
False
显然,在数学上,这是正确的答案。但Python如何知道它应该在这种情况下输出False
?
此外,Python的实现与Java或C ++有何不同?