为什么 python Decimal 类型中有一个负的 NaN

Why is there a negative NaN in python Decimal type

出于好奇,为什么 Decimal 类型中有一个负的 NaN?

>>> Decimal('-nan')
Decimal('-NaN')
>>> float('-nan')
nan

您也可以在浮点数中获得带符号的 NaN。在 IEEE754 中(大多数 python 解释器使用的格式),格式由三个字段组成,一个符号位、一个指数和一个分数。

NaN 由指数中的 1 位和必须为非零的小数部分表示。

未指定符号位。这允许 signed NaN 的可能性,尽管考虑到所有 NaN 比较 false 是否相等(包括它自己),区别是人为的。

Decimal 类型遵循相同的约定:符号位不是由其 NaN 表示设置的,因此发出有符号 NaN 的可能性。