psycopg2在SELECT语句中四舍五入

时间:2018-08-09 12:24:31

标签: postgresql rounding psycopg2 truncated

我正在编写一个快速脚本,以使用psycopg2从数据库中检索值。在我验证输出中的值之前,一切似乎都可以正常工作。我惊讶地发现他们被围捕了。我仔细检查了存储的值,它们是正确的。那么为什么要查询

cursor = connection.cursor()
cursor.execute('SELECT val, val+0 FROM mytable;')
rows = cursor.fetchall()
print(rows[0])

返回

(1860500.0, 1860496.0)
 ^ rounded? ^ correct

我在做什么错?注意:列val定义为

ALTER TABLE public.mytable ADD COLUMN val real;

1 个答案:

答案 0 :(得分:0)

尝试SET extra_float_digits=3,看看是否会改变。

第二个值在内部转换为numeric,因为它是realinteger的“最小公分母”,而numeric没有四舍五入。

您应该使用double precision而不是real