我正在编写一个快速脚本,以使用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;
答案 0 :(得分:0)
尝试SET extra_float_digits=3
,看看是否会改变。
第二个值在内部转换为numeric
,因为它是real
和integer
的“最小公分母”,而numeric
没有四舍五入。
您应该使用double precision
而不是real
。