我正在使用實型來保存SQLite數據庫中的價格值,但它沒有正確返回值。如果我保存一些值,如1.01
它將返回4.029999999999999
。 我已經讀過,在SQLite中節省價格的最佳方式是使用整數SQLite如何使用整數來存儲價格值
但我不知道如何使用它。 如何在這種情況下存儲和檢索價格? 下面的代碼我現在該怎麼找回價格:
Cursor cursor = null;
double totalPrice = 0;
try {
cursor = mDB.rawQuery("select " + Expense.PRICE + " from " + Expense.TABLE_NAME + " where " + " (strftime("
+ dateType + ", " + Expense.DATE + "))" + "= ? ", new String[] { currentDate });
} catch (Exception e) {
Log.e(TAG, "error" + e.toString());
e.printStackTrace();
}
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
totalPrice += cursor.getDouble(cursor.getColumnIndex(Expense.PRICE));
}
首先,停止構建你的SQL。改用參數化的SQL。接下來,不要使用'double'作爲價格信息:如果需要,可以將其作爲整數存儲,但可以*將其作爲整數檢索,也可以將其轉換爲BigDecimal。 – 2013-04-26 11:51:00
顯然,如果您需要超過1分的精度,您必須將存儲的值乘以100,甚至更多。 – stivlo 2013-04-26 11:52:43
感謝有關SQL請求的建議。 – 2013-04-26 11:53:32