Как я могу сохранить значение BigDecimal (Java) в столбце Real (SQlite)?

У меня все еще большие проблемы с BigDecimal (слезы началисьВоти продолжалВот до сих пор.

Теперь у меня есть противоположная проблема - переход от BigDecimal в POJO к REAL в таблице SQLite.

POJO определяется как:

public class DeliveryItem {
    private int _id;
    private String _invoiceNumber;
    private String _UPC_PLU;
    private String _vendorItemId;
    private int _packSize;
    private String _description;
    private BigDecimal _cost;
    private BigDecimal _margin;
    private BigDecimal _listPrice;
    private int _departmentNumber;
    private String _subdepartment;
    private String _quantity;

    public void setID(int id) {
        this._id = id;
    }
    . . .

Этот код пытается получить данные в форме, чтобы их можно было разместить в таблице SQLite (где соответствующие столбцы имеют тип данных REAL, единственный тип данных SQLite real / float):

public long addDeliveryItem(DeliveryItem delItem) {
    long IdAdded = 0;
    ContentValues values = new ContentValues();
    values.put(COLUMN_INVOICENUM, delItem.get_invoiceNumber());
    values.put(COLUMN_UPCPLU, delItem.get_UPC_PLU());
    values.put(COLUMN_VENDORITEMID, delItem.get_vendorItemId());
    values.put(COLUMN_PACKSIZE, delItem.get_packSize());
    values.put(COLUMN_DESCRIPTION, delItem.get_description());
    //values.put(COLUMN_COST, delItem.get_cost());
    //values.put(COLUMN_COST, new BigDecimal(delItem.get_cost()));
    values.put(COLUMN_COST, (Double) delItem.get_cost());
    values.put(COLUMN_MARGIN, delItem.get_margin());
    values.put(COLUMN_LISTPRICE, delItem.get_listPrice());
    values.put(COLUMN_DEPTNUM, delItem.get_departmentNumber());
    values.put(COLUMN_SUBDEPT, delItem.get_subdepartment());
    values.put(COLUMN_QTY, delItem.get_quantity());

    SQLiteDatabase db = this.getWritableDatabase();

    if (db != null) {
        IdAdded = db.insert(TABLE_DELIVERYITEMS, null, values);
    }
    if (db != null) {
        db.close();
    }
    return IdAdded;
}

Для строки COLUMN_COST выше (столбцы «MARGIN» и «LISTPRICE» имеют одинаковую проблему), я получаю: «ошибка: несовместимые типы: BigDecimal не может быть преобразован в Double«Когда я пытаюсь это:

values.put(COLUMN_COST, (Double) delItem.get_cost());

... и для закомментированного кода (обе строки), а именно:

values.put(COLUMN_COST, delItem.get_cost());

...и это:

values.put(COLUMN_COST, new BigDecimal(delItem.get_cost()));

...Я получил, "ошибка: не найден подходящий метод для метода put (String, BigDecimal) ContentValues.put (String, String) не применим (несоответствие аргумента; BigDecimal не может быть преобразован в String) метод ContentValues.put (String, Byte) не применим (аргумент рассогласование; BigDecimal не может быть преобразован в байт) метод ContentValues.put (String, Short) не применим (несоответствие аргумента; BigDecimal не может быть преобразован в Short) метод ContentValues.put (String, Integer) не применим (несоответствие аргумента; BigDecimal не может быть преобразованным в целое число) метод ContentValues.put (String, Long) не применим (несоответствие аргумента; BigDecimal не может быть преобразовано в Long) метод ContentValues.put (String, Float) не применим (несоответствие аргумента; BigDecimal не может быть преобразован в Float ) метод ContentValues.put (String, Double) не применим (несоответствие аргумента; BigDecimal не может быть преобразован в Double) метод ContentValues.put (String, Boolean) не применим (несоответствие аргумента; BigDecimal не может быть преобразован t o Boolean) метод ContentValues.put (String, byte []) не применим (несоответствие аргумента; BigDecimal не может быть преобразован в byte [])"

Итак, как я могу манипулировать значением BigDecimal, чтобы оно было принято экземпляром ContentValues?

ОБНОВИТЬ

Возможно, мне придется временно выдумать это, просто проигнорировав эти значения и изменив DDL на:

//+ COLUMN_COST + " REAL,"  + COLUMN_MARGIN + " REAL," + COLUMN_LISTPRICE + " REAL,"
+ COLUMN_COST + " REAL DEFAULT 0,"  + COLUMN_MARGIN + " REAL DEFAULT 0," + COLUMN_LISTPRICE + " REAL DEFAULT 0,"

Ответы на вопрос(3)

Ваш ответ на вопрос