如何在 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 的好处是你可以获得精度。如果您按照第一个答案的建议从双精度转换为大十进制,那么您可能会遇到双精度相同的精度问题。将字符串转换为大十进制总是更好。