Python中可以用如下方式表示正負無窮:
float("inf"), float("-inf")
利用 inf 做簡單加、乘算術運算仍會得到 inf
>>> 1 + float('inf') inf >>> 2 * float('inf') inf
但是利用 inf 乘以0會得到 not-a-number(NaN):
>>> 0 * float("inf") nan
除了inf外的其他數除以inf,會得到0
>>> 889 / float('inf') 0.0 >>> float('inf')/float('inf') nan
通常的運算是不會得到 inf值的
>>> 2.0**2 4.0 >>> _**2 16.0 >>> _**2 256.0 >>> _**2 65536.0 >>> _**2 4294967296.0 >>> _**2 1.8446744073709552e+19 >>> _**2 3.4028236692093846e+38 >>> _**2 1.157920892373162e+77 >>> _**2 1.3407807929942597e+154 >>> _**2 Traceback (most recent call last): File "<stdin>", line 1, in ? OverflowError: (34, 'Numerical result out of range')
inf的運算規則遵從 IEEE-754 standard
不等式:
當涉及 > 和 < 運算時,
- 所有數都比-inf大
- 所有數都比+inf小
等式:
+inf 和 +inf相等
-inf 和 -inf相等
Refer to:
http://stackoverflow.com/questions/1628026/python-infinity-any-caveats