所以我有一個應用程序,我把任意字符串在數據庫中,以後提取出來是這樣的:存儲浮點數作爲字符串中的Android數據庫
Cursor DBresult = myDatabase.query(false, Constant.DATABASE_NOTES_TABLE_NAME,
new String[] {"myStuff"}, where, null, null, null, null, null);
DBresult.getString(0);
這工作正常,在所有情況下,除了字符串長相時像浮點數字,例如「221.123123123」。將數據保存到數據庫後,我可以將數據庫提取到我的計算機上,並使用DB查看器查看數據庫,並且保存的數字是正確的。但是,使用cursor.getString()時,將返回字符串「221.123」。我不能理解我如何防止這種情況。我想我可以在每一個字符串上做一個cursor.getDouble()來看看這是否給出了更好的結果,但是這種感覺很糟糕並且效率低下。有什麼建議麼?
乾杯,
編輯:我剛做了一個小測試程序。這個程序打印「的結果:123.123」,當我想它打印「結果:123.123123123」
SQLiteDatabase database = openOrCreateDatabase("databas", Context.MODE_PRIVATE, null);
database.execSQL("create table if not exists tabell (nyckel string primary key);");
ContentValues value = new ContentValues();
value.put("nyckel", "123.123123123");
database.insert("tabell", null, value);
Cursor result = database.query("tabell", new String[]{"nyckel"}, null, null, null, null, null);
result.moveToFirst();
Log.d("TAG","result: " + result.getString(0));
getDouble實際上給你你想要的結果嗎?數據庫中的列是什麼類型? – vickirk 2010-04-27 07:29:16
是的,getDouble返回正確的結果。該列是字符串。 – pgsandstrom 2010-04-27 07:36:28