我最近遇到了以下错误,因为我在我的python代码中将Decimal对象类型用于mitigate rounding off error,如Pydocs所示。
In [173]: Decimal(10) * 0.5
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-173-c778d6cdfd9f> in <module>()
----> 1 Decimal(10) * 0.5
TypeError: unsupported operand type(s) for *: 'Decimal' and 'float'
对于用于计算所有其他类型操作的Decimal对象的所有浮动都会出现此问题。但是对于使用整数的操作,问题不存在:
In [175]: Decimal(10)*5
Out[175]: Decimal('50')
如果有人能向我解释为什么会这样,我将不胜感激。谢谢。