Reputation: 323
I am using Python 2.7 and MySQLdb. I get this error on this code:
Value = 5
x.execute("SELECT number from Testing where id ='%s';" % Value)
data = x.fetchall()
print (data)
data = data[0][0]
data = data + 0.5
x.execute(""" UPDATE Testing SET number = %s WHERE id = %s """, (data, Value))
conn.commit()
The error occurs on the line: data = data + 0.5
.
TypeError: unsupported operand type(s) for +: 'decimal' and 'float'.
The number is a DECIMAL(8,1)
. I have seen other questions with this error but not for adding. Plus, I think some people will have the same problem if they are new to Python and can't understand more advanced Python coding for similar problem questions. Could you please help me? Thanks in advance.
Upvotes: 6
Views: 17482
Reputation: 394031
There doesn't appear to be support for that operation, you will have to construct a Decimal
object first and add this:
In [132]:
import decimal
d = decimal.Decimal(23.0)
d = d + decimal.Decimal(0.5)
d
Out[132]:
Decimal('23.5')
Upvotes: 7
Reputation: 5482
This is indeed an exception for addition:
from decimal import Decimal
Decimal('0.1') + 0.2
TypeError Traceback (most recent call last)
<ipython-input-3-9bb7f0cfb622> in <module>()
1 from decimal import Decimal
----> 2 Decimal('0.1') + 0.2
TypeError: unsupported operand type(s) for +: 'decimal.Decimal' and 'float'
You may want to do this instead:
data = data + Decimal('0.5')
Upvotes: 2