如何在 SQLite 中获取 BigDemical?
How to get the BigDemical in SQLite?
我正在抓取数据库的数据。如果是整数我可以用getInt
,如果是字符串我可以用getString
。但是BigDecimal
不知道用什么...
请帮忙。提前致谢!
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String txnno = cursor.getString(1);
String name = cursor.getString(2);
String txndate = cursor.getString(3);
BigDecimal amount = cursor.getDouble(4);
String description1 = cursor.getString(5);
String createddate = cursor.getString(7);
mList.add(new Model(id, txnno, name, txndate, amount, description1, createddate));
}
使用BigDecimal.valueOf(double val)
:
BigDecimal amount = BigDecimal.valueOf(cursor.getDouble(4));
最佳选择是:使用 getString() 方法获取值,然后使用合适的构造函数将其转换为 BigDecimal。
参考:https://developer.android.com/reference/java/math/BigDecimal
相关链接:
更多:How can I store a BigDecimal (Java) value in a Real (SQlite) column?
一般来说,使用 say double 的 big decimal 的好处是你可以获得精度。如果您按照第一个答案的建议从双精度转换为大十进制,那么您可能会遇到双精度相同的精度问题。将字符串转换为大十进制总是更好。
我正在抓取数据库的数据。如果是整数我可以用getInt
,如果是字符串我可以用getString
。但是BigDecimal
不知道用什么...
请帮忙。提前致谢!
while (cursor.moveToNext()) {
int id = cursor.getInt(0);
String txnno = cursor.getString(1);
String name = cursor.getString(2);
String txndate = cursor.getString(3);
BigDecimal amount = cursor.getDouble(4);
String description1 = cursor.getString(5);
String createddate = cursor.getString(7);
mList.add(new Model(id, txnno, name, txndate, amount, description1, createddate));
}
使用BigDecimal.valueOf(double val)
:
BigDecimal amount = BigDecimal.valueOf(cursor.getDouble(4));
最佳选择是:使用 getString() 方法获取值,然后使用合适的构造函数将其转换为 BigDecimal。
参考:https://developer.android.com/reference/java/math/BigDecimal
相关链接: 更多:How can I store a BigDecimal (Java) value in a Real (SQlite) column?
一般来说,使用 say double 的 big decimal 的好处是你可以获得精度。如果您按照第一个答案的建议从双精度转换为大十进制,那么您可能会遇到双精度相同的精度问题。将字符串转换为大十进制总是更好。