我有下表:
CREATE TABLE number_data_types
(
numeric_column NUMERIC(20,5),
real_column REAL,
double_column DOUBLE PRECISION
);
插入以下示例数据:
INSERT INTO number_data_types
VALUES
(2.13579, 2.13579, 2.13579),
(2.1357987654, 2.1357987654, 2.1357987654);
SELECT * FROM number_data_types;
结果:
2.13579;2.13579;2.13579
2.13580;2.1358;2.1357987654
第二行查询结果为何是REAL
类型的“ 2.1358” ?
答案 0 :(得分:1)
我不太了解这个问题。您有两个值:
2.13579
2.1357987654
当Postgres放置实际值时,它将删除结尾的零。至少有六个有效数字,所以这些数字被解释为非常接近:
2.13579
2.13580
但是,0
在结果集中被抑制。如果将2.13580
插入实列,您将很容易看到这一点。