Python MySQLdb游标截断值

Python MySQLdb游标截断值,python,mysql,floating-point,decimal,Python,Mysql,Floating Point,Decimal,我遇到了一个有趣的问题。我有一个MySQL数据库,其中包含一些具有非常精确的十进制值的双精度数(例如,0.00895406607247756,17位小数)。这是科学数据,因此这种高精度非常重要 我正在使用Python中的MySQLdb从数据库中选择数据: cursor.execute("SELECT * FROM " ...etc...) for n in range(cursor.rowcount): row = cursor.fetchone() print row 出于

我遇到了一个有趣的问题。我有一个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获取原始形式的数据而不进行截断?

您使用什么MySQL数据类型来存储数据?是否为十进制(18,17)<代码>十进制s最多有个


如果您将MySQL数据类型设置为使用
DECIMAL(…)
,则MySQLdb将数据转换为Python对象,这将保持精度。

您可以对游标中的行执行
:print(row)
,您知道吗?谢谢。我知道,;我不仅仅是打印行,我还用这些值做其他事情。这只是我获取数据的一个例子,我使用了DOUBLE。我给他打一针。