为什么当我在我的一个SQLite列上调用SUM
时,它不会返回一个精确的答案?这是我的意思:
假设我的列中有4行要求和
row1 8362.82
row2 +18837.42
row3 +7294.12
row4 +73.23
___________________
17567.59
现在这些应该加起来17567.59
对吧?那么我的sum
会返回17567.6
。这可能听起来不是什么大问题,但我需要准确的小数,而不是舍入的小数。随着数字变大,它会进一步变圆。任何人都可以解释这个解决方案吗?感谢。
答案 0 :(得分:0)
将值存储为整数而不是浮点数。
答案 1 :(得分:0)
我有相同的舍入问题,除了我的四舍五入到整数而不是在小数点后保持一个位置。我转而使用total()
代替sum()
。
total()的结果始终是浮点值。的结果 如果所有非NULL输入都是整数,sum()是一个整数值。如果有的话 sum()的输入既不是整数也不是NULL,然后sum()返回一个 浮点值,可能是真实总和的近似值。
在我的情况下,这并没有解释这个问题,因为我的列包含整数和浮点值的混合。但我决定尝试它,因为它的不同,它的确有效。它还将所有NULL加总为0而不是NULL,这在很多情况下很有用。