postgresql - psycopg2 在 SELECT 语句中舍入我的浮点数
问题描述
我正在编写一个快速脚本来使用 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
这是否会改变事情。
第二个值被转换为内部,因为它是andnumeric
的“最小公分母” ,并且没有四舍五入。real
integer
numeric
您应该使用double precision
而不是real
.
推荐阅读
- c++ - 在不使用除法/取模的情况下将随机整数裁剪为一系列值
- java - 递归调用方法
- typescript - Typescript如何使用接口的属性来约束函数参数
- java - 错误:类 CatatanAdapter 中的构造函数 CatatanAdapter 不能应用于给定类型
- perl - 如何将 if/else 更改为哈希函数?perl
- c - 链表 - 获取分段错误
- html - 如何将父级的父级宽度应用于相对定位的子级 div?
- html - 带有自动播放和覆盖文本的纯 CSS 3 图像滑块
- python - Windows 10 操作系统上的标准 Python 模块在哪里?
- django - 导出 Django 表2