我正在尝试将货币值存储在android中的sqlite数据库中。我不这么认为int
会在这里使用。我听说可以使用Bigdecimal
。如果有人能告诉我它应该用于将值发送到sqlite数据库的方式。
答案 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,足够大于货币。
我们也是