2012-02-08 70 views

回答

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和BLOB支持”部分。它讨论了它将如何让您将字符串存储在其他类型的列中。

+0

我不相信你:SQLite 3.0将整数存储为整数。旧版本2.8将所有内容都存储为字符串。 – Jeff 2012-02-08 17:30:57

+0

这只是错误的。转到站点(我只是修复了链接)并搜索:不同之处在于,即使格式转换不可行,SQLite 3.0仍将存储数据。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-02-08 19:09:03

+0

您还应该包括该页面的前一句话:“当数据插入列时,该列将尝试将数据格式转换为列的声明类型”。当你将列声明为Integer并将字符串'12345'存储到其中时,SQLite会将该字符串转换为整数并将其存储为整数。 – Jeff 2012-02-08 19:29:34

0

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

也是我们