0

我有一個Android應用程序,我正在處理金錢。我聽說BigDecimal是處理金錢的最佳選擇,我在處理不同貨幣的字符串表示時遇到了麻煩,所以我從浮動狀態切換到BigDecimal。但是,我遇到了一個問題。如果我將我的BigDecimals作爲STRING存儲在SQL表中,則無法在它們上運行SUM()!我可以在遊標中取出輸入項,並以編程方式將它們求和,但有沒有更好的方法可以做到這一點?BigDecimal或SQL聚合函數?

編輯:我切換到NUMBER類型,但現在我遇到了一個問題,其中SUM()函數給了我一個浮點數,當我將其轉換爲BigDecimal時,我得到了額外的垃圾擴展到結尾。

回答

1

我想我解決了它。我使用SQLite的TOTAL()聚合函數來獲取以float形式表示的總和,然後使用Float.toString(),然後將其投入到新的BigDecimal中。

BigDecimal total = new BigDecimal(Float.toString(cur.getFloat(0)));