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()
功能。有人可以告诉我如何清除这个错误吗?
答案 0 :(得分:2)
您无法乘以或设计float
和decimal.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'