我遇到了一个有趣的问题。我有一个MySQL数据库,其中包含一些具有非常精确的小数值的双精度数(例如,0.00895406607247756,17位小数)。这是科学数据,所以高精度是非常重要的。
我在Python语言中使用MySQLdb从数据库中选择数据:
cursor.execute("SELECT * FROM " ...etc...)
for n in range(cursor.rowcount):
row = cursor.fetchone()
print row由于某些原因,当达到我非常精确的小数时,它们被截断到最多14位小数。(即前一个小数变为0.00895406607248)
有没有办法在不截断的情况下从MySQLdb中获得原始格式的数据?
发布于 2010-07-29 01:11:24
您使用哪种MySQL数据类型来存储数据?是DECIMAL(18,17)吗?DECIMAL%s最多有65 digits of precision。
如果将MySQL数据类型设置为使用DECIMAL(...),那么MySQLdb会将数据转换为Python decimal.Decimal对象,该对象应保留精度。
https://stackoverflow.com/questions/3355353
复制相似问题