5.1.4 特殊值
除了期望的数字值,Decimal还可以表示很多特殊值,包括正负无穷大值、“不是一个数”(NaN)和0。
import decimal
for value in ['Infinity','NaN','0']:
print(decimal.Decimal(value),decimal.Decimal('-' + value))
print()
# Math with infinity
print('Infinity + 1:',(decimal.Decimal('Infinity') + 1))
print('-Infinity + 1:',(decimal.Decimal('-Infinity') + 1))
# Print comparing NaN
print(decimal.Decimal('NaN') == decimal.Decimal('Infinity'))
print(decimal.Decimal('NaN') != decimal.Decimal(1))
与无穷大值相加会返回另一个无穷大值。与NaN比较相等性总会返回false,而比较不等性总会返回True。与NaN比较大小来确定排序顺序是未定义的,这会导致一个错误。
运行结果: