我試圖在表格中輸入「0.20」等值,但是當我在活動內顯示它時,它顯示「0.2」。我不確定爲什麼'0'被刪除,即不正確的表格結構,插入或返回。爲什麼插入數據時小數點會被刪除? SQLite(Android開發)
爲隨後創建我的表:
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME
+ " TEXT NOT NULL, " + KEY_SWIMMERLAPS + " INT NOT NULL, "
+ KEY_SPONSOR + " DEC(4,2) NOT NULL);");
我再插入數據:
public long addSwimmer(String name, String laps, String sponsor) {
int i = Integer.parseInt(laps);
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_SWIMMERLAPS, i);
cv.put(KEY_SPONSOR, (new DecimalFormat("0.00##")).format(0.20));
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
,然後返回贊助數據:
public String getSwimmerSponsors() {
String[] columns = new String[] { KEY_SPONSOR };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, KEY_SWIMMERLAPS + " DESC");
String result = "";
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(0) + "\n";
}
return result;
}
編輯 - 我顯示返回結果如下我的佈局:
String sponsors = swimmerDb.getSwimmerSponsors();
tvSponsor.setText(sponsors);
謝謝。
becouse這就是sqlite如何工作的方式......使用'String.format(...)'+'Cursor.getDouble(...)' – Selvin
您可以擴展它嗎?雖然,我相信你是對的 - 我對Java相對來說比較陌生,但我不確定你的意思。你能否提供一個更詳細的例子。謝謝。 – Sheldon
'for(c.moveToFirst();!c.isAfterLast(); c.moveToNext()){ result = String.format(「%s%.2f \ n」,result,c.getDouble(0)) ; }現在很清楚了嗎?編輯:忘記f格式字符串! – Selvin