阅读有关数字数据类型的Postgresql 文档
让我想到了这个问题:为什么在 Postgresql 中使用数据类型Float
(SQL 标准)会得到这些意外的结果Numeric
?
例如:
CREATE TEMP TABLE testnum (a numeric, b float);
INSERT INTO testnum VALUES (100,100);
INSERT INTO testnum VALUES (9*9*9,9*9*9);
INSERT INTO testnum VALUES (9^9^9,9^9^9);
SELECT (a/3)*3 AS numeric, (b/3) * 3 AS float FROM testnum;
SELECT (a/5)*5 AS numeric, (b/5) * 5 AS float FROM testnum;
Run Code Online (Sandbox Code Playgroud)
然后运行
SELECT (a/3)*3 AS numeric, (b/3) * 3 AS float FROM testnum;
numeric | float
99.9999999999999999 | 100
729.0000000000000000 | 729
Run Code Online (Sandbox Code Playgroud)
在这个测试中Float …