SQLite SUM函数舍入错误 - android

时间:2012-02-26 22:22:46

标签: android sqlite sum rounding

为什么当我在我的一个SQLite列上调用SUM时,它不会返回一个精确的答案?这是我的意思:

假设我的列中有4行要求和

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我有相同的舍入问题,除了我的四舍五入到整数而不是在小数点后保持一个位置。我转而使用total()代替sum()

来自the documentation

  

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

在我的情况下,这并没有解释这个问题,因为我的列包含整数和浮点值的混合。但我决定尝试它,因为它的不同,它的确有效。它还将所有NULL加总为0而不是NULL,这在很多情况下很有用。