2012-02-26 96 views
0

为什么当我在我的一个SQLite列上调用SUM时,它不会返回确切的答案?继承人我的意思:SQLite SUM函数舍入错误 - android

可以说我有4列在我的专栏总结

row1  8362.82 
row2  +18837.42 
row3  +7294.12 
row4  +73.23 
___________________ 
     17567.59 

现在,这些加起来应该17567.59吧?那么我的sum返回17567.6。这听起来不像是个大问题,但我需要精确的小数,而不是圆整的。随着数字变得更大,它会进一步发展。任何人都可以解释这个解决方案吗?谢谢。

回答

0

将值存储为整数而不是浮点数。

+0

[SQLite不相信数据类型](http://www.sqlite.org/datatype3.html),我知道它最终都以字符串形式存储。 – 2012-02-26 22:27:11

+0

是的,它全部存储为字符串。但我想我明白你在暗示什么,我在哪里保留没有小数的数字,并且在它加起来之后将小数点后两位滑过来?问题是idk如何做到这一点大声笑 – 725623452362 2012-02-26 22:39:51

+0

finalResult = result/100 – 2012-02-27 01:06:24

0

我有相同的舍入问题,除了我四舍五入到整数,而不是保留小数点后的一个地方。我转而使用total()而不是sum()

the documentation

总的结果()始终是一个浮点值。 sum()的结果是一个整数值,如果所有非NULL输入都是整数。如果sum()中的任何 输入既不是整数也不是NULL,则sum()返回一个浮点值,该值可能是真实和的近似值。

这并不能解释我的情况,因为我的列包含整数和浮点值的混合。但我决定尝试一下,因为它们的差异,它很有效。它也将所有的NULL加到0而不是NULL,这在很多情况下很有用。