Агрегатные функции BigDecimal или SQL?

У меня есть приложение для Android, в котором я работаю с деньгами. Я слышал, что BigDecimal лучше всего подходит для работы с деньгами, и у меня возникли проблемы со строковым представлением разных валют, поэтому я переключился с float на BigDecimal. Однако я столкнулся с проблемой. Если я сохраню свои BigDecimals в своей таблице SQL как STRING, я не смогу запустить SUM() для них! Я мог бы вытащить записи в курсор и суммировать их программно, но есть ли лучший способ сделать это?

РЕДАКТИРОВАТЬ: я переключился на тип NUMBER, но теперь я столкнулся с проблемой, когда функция SUM() дает мне число с плавающей запятой, и когда я конвертирую его в BigDecimal, я получаю дополнительный мусор, расширенный до конца.


person GameKyuubi    schedule 05.07.2013    source источник


Ответы (1)


Я думаю, что решил это. Я использовал агрегатную функцию TOTAL() SQLite, чтобы получить сумму, представленную в виде числа с плавающей запятой, затем использовал Float.toString(), а затем бросил это в новый BigDecimal.

BigDecimal total = new BigDecimal(Float.toString(cur.getFloat(0)));
person GameKyuubi    schedule 05.07.2013