在SQlite android数据库中存储货币

时间:2012-02-08 03:44:01

标签: java android eclipse sqlite

我正在尝试将货币值存储在android中的sqlite数据库中。我不这么认为int会在这里使用。我听说可以使用Bigdecimal。如果有人能告诉我它应该用于将值发送到sqlite数据库的方式。

2 个答案:

答案 0 :(得分:11)

将BigDecimal存储为字符串。

您可以使用toPlainString()方法。

BigDecimal b = new BigDecimal();
String s = b.toPlainString();

然后,当您从数据库中提取它时,您可以创建一个新的BigDecimal。

BigDecimal c = new BigDecimal(String s)

信不信由你,SQLite 3.0将所有数据类型都存储为字符串,即使你说它应该是一个整数。查看this web page from the official SQLite website并向下滚动到“Manifest Typing and BLOB Support”部分。它讨论了如何让你将字符串存储在其他类型的列中。

答案 1 :(得分:0)

在这里使用Int。由于SQlite对int使用8个字节,因此最大值为2 ^ 64,即1.8446744e + 19 - 1,或多或少10 ^ 18,足够大于货币。

我们也是