Значения усечения Python MySQLdb - PullRequest
1 голос
/ 28 июля 2010

Я столкнулся с интересной проблемой.У меня есть база данных MySQL, которая содержит некоторые двойные числа с очень точными десятичными значениями (например, 0,00895406607247756, 17 десятичных знаков).Это научные данные, поэтому этот высокий уровень точности очень важен.

Я использую MySQLdb в Python для выбора данных из базы данных:

cursor.execute("SELECT * FROM " ...etc...)

for n in range(cursor.rowcount):
    row = cursor.fetchone()
    print row

По какой-то причине, когда он получаетпо моим очень точным десятичным знакам они были усечены до 14 знаков после запятой.(т. е. предыдущее десятичное число становится 0,00895406607248)

Есть ли способ получить данные из MySQLdb в исходном виде без усечения?

1 Ответ

3 голосов
/ 28 июля 2010

Какой тип данных MySQL вы используете для хранения данных? Это DECIMAL(18,17)? DECIMAL с имеют точность до 65 цифр .

Если вы установите для типа данных MySQL значение DECIMAL(...), MySQLdb преобразует данные в объект Python decimal.Decimal , который должен сохранять точность.

...