Java 在SQlite android数据库中存储货币

Java 在SQlite android数据库中存储货币,java,android,eclipse,sqlite,Java,Android,Eclipse,Sqlite,我试图在android的sqlite数据库中存储货币值。我认为这里不会使用int。我听说可以使用Bigdecimal。如果有人能告诉我应该如何使用它将值发送到sqlite数据库。将BigDecimal存储为字符串 您可以使用toPlainString()方法 然后,当您从数据库中提取它时,您可以创建一个新的BigDecimal BigDecimal c = new BigDecimal(String s) 信不信由你,SQLite 3.0将所有数据类型存储为字符串,即使你说它应该是整数。查看并

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

将BigDecimal存储为字符串

您可以使用toPlainString()方法

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

BigDecimal c = new BigDecimal(String s)

信不信由你,SQLite 3.0将所有数据类型存储为字符串,即使你说它应该是整数。查看并向下滚动到“清单类型和BLOB支持”部分。它讨论了如何让您在其他类型的列中存储字符串。

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


还有我们

我不相信你:SQLite 3.0将整数存储为整数。旧版本2.8将所有内容存储为字符串,这是错误的。转到站点(我刚刚修复了链接)并搜索:不同之处在于,即使无法进行格式转换,SQLite 3.0仍将存储数据。您还应包括该页面中的前一句话:将数据插入列时,该列将尝试将数据格式转换为该列声明的类型“。当您将列声明为整数并将字符串“12345”存储到其中时,SQLite会将该字符串转换为整数并将其存储为整数。我相信当您要使用聚合函数时,会出现问题,因为您无法聚合字符串列。”。
BigDecimal c = new BigDecimal(String s)