*:'float'和'decimal'不受支持的操作数类型

时间:2015-05-18 19:05:48

标签: python floating-point decimal

for a in range(0,size):
    et = 0.0023*ralist[rows[a][2]] * ( 0.5*(rows[a][3] + rows[a][4])  + 17.8 ) * ( rows[a][3] - rows[a][4])**(0.5)
    eto_values.insert(a,et)

当我尝试运行代码时,出现以下错误:

unsupported operand types for * : 'float' and  'decimal'

我也尝试过使用decimal.Decimal()功能。有人可以告诉我如何清除这个错误吗?

2 个答案:

答案 0 :(得分:2)

您无法乘以或设计floatdecimal.Decimal()类型,我建议乘以Decimal('0.0023')Decimal('0.5')

for a in range(0,size)
  et = Decimal('0.0023')*ralist[rows[a][2]] * ( Decimal('0.5')*(rows[a][3] + rows[a][4]) + 17.8 ) * ( rows[a][3] - rows[a][4])**(0.5)
  eto_values.insert(a,et)

答案 1 :(得分:0)

>>> from decimal import *
>>> Decimal(1.2) * Decimal(3.4)
Decimal('4.079999999999999742428258287')
>>> Decimal(1.2) * 3.4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float'