试图理解为什么不支持Python Decimal数据类型和float数据类型之间的数学运算

时间:2015-06-23 14:45:18

标签: python decimal rounding floating-point-precision floating-point-conversion

我最近遇到了以下错误,因为我在我的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')

如果有人能向我解释为什么会这样,我将不胜感激。谢谢。

0 个答案:

没有答案