在Python 2.6.5中,以下表达式的结果为False:
有没有解释为什么比较Decimal和float应该像这样表现的理由?
>>> import decimal
>>> decimal.Decimal('0') < 1.0
False
有没有解释为什么比较Decimal和float应该像这样表现的理由?
>>> import decimal
>>> decimal.Decimal('0') < 1.0
False
来自decimal模块文档:
从版本2.7开始改变:现在,对于float实例x和Decimal实例y之间的比较,返回基于x和y的值的结果。在早期版本中,任何Decimal实例x和任何float实例y的x < y都返回相同(任意)的结果。
因此,看起来这是一个错误/缺失的功能,您所需要做的就是升级。
decimal.Decimal('0') + 1.0
引发TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
。 - eumiro