psycopg2 在 SELECT 语句中四舍五入我的浮点数
psycopg2 rounds my float in SELECT statement
我正在编写一个快速脚本以使用 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;
尝试 SET extra_float_digits=3
看看是否会有所改变。
第二个值在内部转换为 numeric
,因为这是 real
和 integer
的“最小公分母”,并且 numeric
未四舍五入。
您应该使用 double precision
而不是 real
。
我正在编写一个快速脚本以使用 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;
尝试 SET extra_float_digits=3
看看是否会有所改变。
第二个值在内部转换为 numeric
,因为这是 real
和 integer
的“最小公分母”,并且 numeric
未四舍五入。
您应该使用 double precision
而不是 real
。