SQLite SUM函数舍入错误 - android
问题描述:
为什么当我在我的一个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
。这听起来不像是个大问题,但我需要精确的小数,而不是圆整的。随着数字变得更大,它会进一步发展。任何人都可以解释这个解决方案吗?谢谢。
答
将值存储为整数而不是浮点数。
答
我有相同的舍入问题,除了我四舍五入到整数,而不是保留小数点后的一个地方。我转而使用total()
而不是sum()
。
总的结果()始终是一个浮点值。 sum()的结果是一个整数值,如果所有非NULL输入都是整数。如果sum()中的任何 输入既不是整数也不是NULL,则sum()返回一个浮点值,该值可能是真实和的近似值。
这并不能解释我的情况,因为我的列包含整数和浮点值的混合。但我决定尝试一下,因为它们的差异,它很有效。它也将所有的NULL加到0而不是NULL,这在很多情况下很有用。
[SQLite不相信数据类型](http://www.sqlite.org/datatype3.html),我知道它最终都以字符串形式存储。 – 2012-02-26 22:27:11
是的,它全部存储为字符串。但我想我明白你在暗示什么,我在哪里保留没有小数的数字,并且在它加起来之后将小数点后两位滑过来?问题是idk如何做到这一点大声笑 – 725623452362 2012-02-26 22:39:51
finalResult = result/100 – 2012-02-27 01:06:24