【发布时间】:2013-09-18 10:05:10
【问题描述】:
我在 PostgreSQL 表中有一个小数:
test=# CREATE TABLE test (r real);
CREATE TABLE
test=# INSERT INTO test VALUES (0.00000000000000000000000000000000000000000009);
INSERT 0 1
当我运行以下查询时,它返回的数字为8.96831e-44:
test=# SELECT * FROM test;
r
-------------
8.96831e-44
(1 row)
如何以十进制形式 (0.00000000000000000000000000000000000000000009) 而非科学计数法显示 psql 中的值?我也会对0.0000000000000000000000000000000000000000000896831 感到满意。不幸的是,我无法更改表格,而且我并不真正关心精度损失。
(我和to_char玩了一段时间没有成功。)
【问题讨论】:
-
啊,看到它是真的。这是一个浮点表示......你永远不会得到这个值:What Every Computer Scientist Should Know About Floating-Point Arithmetic
-
@ppeterka66: 这是
real(postgresql.org/docs/9.1/static/datatype-numeric.html) -
更新了我的答案:这似乎是一个已知问题,而且我感觉不对...
标签: postgresql floating-point psql to-char