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)));