2012-02-26 50 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,這在很多情況下很有用。