我有一个Android应用程序,我正在处理钱。我听说BigDecimal是最好的处理钱,我在处理不同货币的字符串表示时遇到问题,所以我从float切换到BigDecimal。但是,我遇到了一个问题。如果我将我的BigDecimals作为STRING存储在我的SQL表中,我就不能对它们运行SUM()!我可以在游标中拉出条目并以编程方式对它们求和,但是有更好的方法吗?
编辑:我切换到NUMBER类型,但现在我遇到了一个问题,其中SUM()函数给了我一个浮点数,当我将它转换为BigDecimal时,我得到了额外的垃圾扩展到最后。
答案 0 :(得分:1)
我想我解决了。我使用SQLite的TOTAL()聚合函数来获得表示为float的总和,然后使用Float.toString()然后将其抛入一个新的BigDecimal。
BigDecimal total = new BigDecimal(Float.toString(cur.getFloat(0)));