我知道将小数转换为浮点数的问题,反之亦然。目前,我有一个几乎总是使用decimal
模块运行的程序,但是当我尝试将任何decimal.Decimal
数据类型添加到我的数据库中时,它会抛出错误:
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
以下是代码:
db = sqlite3.connect('test.db')
c = db.cursor()
c.execute('CREATE TABLE IF NOT EXISTS test1 (decimal REAL)')
a = Decimal(2.14) - Decimal(1.55)
c.execute("INSERT INTO test1(decimal) VALUES(?)",(a,))
db.commit()
但如果我将Decimal
更改为float
,则可以正常使用。
这会影响答案的准确性(我很确定吗)?
有没有更好的方法来转换为float以便存储在数据库中?如果我无法将其直接存储在Decimal
类型中,那么在从数据库中提取后,我需要能够将其转换回Decimal
。