为什么我的Sum结果在SQLite中是错误的?

时间:2016-12-15 11:57:48

标签: sqlite

为什么我的以下SQL查询

Insert Into Test (ItemQty) VALUES (1.445);
Insert Into Test (ItemQty) VALUES (0.000000000000001);

Select Sum(ItemQty) from Test;

生成1.445而不是1.445000000000001? 我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

SQLite版本3 REAL值存储为' 8字节IEEE浮点数' (参见 https://www.sqlite.org/datatype3.html)。这些值仅允许少于16位小数(参见 https://en.wikipedia.org/wiki/IEEE_floating_point#Basic_and_interchange_formats)。但是,常量1.445000000000001的长度为17,这(仅)超出了此格式的能力。

事实上,当我重新创建你的例子,但是在小数点后面插入第二个值为零,我收到了结果1.44500000000001。

因为那只有16位数字。