2015-06-16 3 views
1

Я извлекаю данные из базы данных с помощью arraylist, но некоторые двойные значения преобразуются в значения округления.Android извлекает данные из базы данных с использованием arraylist

public ArrayList<HashMap<String, String>> getTrackList() { 
    SQLiteDatabase db = dbHelper.getReadableDatabase(); 
    String selectQuery = "SELECT * FROM TRACK"; 

    ArrayList<HashMap<String, String>> trackList = new ArrayList<HashMap<String, String>>(); 

    trackList.clear(); 

    Cursor cursor = db.rawQuery(selectQuery, null); 

    if (cursor.moveToFirst()) { 
     do { 
      HashMap<String, String> track = new HashMap<String, String>(); 
      track.put("LATITUDE", cursor.getString(cursor.getColumnIndex("LATITUDE"))); 
      track.put("LONGITUDE", cursor.getString(cursor.getColumnIndex("LONGITUDE"))); 
      track.put("DATE", cursor.getString(cursor.getColumnIndex("DATE"))); 
      track.put("SPEED", cursor.getString(cursor.getColumnIndex("SPEED"))); 
      track.put("ACCURACY", cursor.getString(cursor.getColumnIndex("ACCURACY"))); 
      track.put("PROVIDER", cursor.getString(cursor.getColumnIndex("PROVIDER"))); 
      track.put("DISTANCE", cursor.getString(cursor.getColumnIndex("DISTANCE"))); 

      trackList.add(track); 
     } while (cursor.moveToNext()); 
    } 
    jSon = new Gson().toJson(trackList); 
    cursor.close(); 
    return trackList; 
} 

здесь широта, долгота и расстояние двойные значения, расстояние такое же, как базы данных, но широта и долгота не та же, предположим, что широта в базе данных 22,8569874, но она возвращает 22,857

+2

Как вы храните значения? Как вы показываете значения? – laalto

+0

Я не показываю, m посылает этот arraylist на сервер, –

+0

Вы можете использовать ** Text ** позже, чтобы преобразовать его в двойное, когда вы используете его в приложении. – SAM

ответ

0

Единственное объяснение, что заключается в том, что dataformat в базе данных - это что-то вроде double.

И если запрос считывает его, он округляет число до 4 цифр.

Попробуйте изменить значения в базе данных на string и пишите следующим образом: 22.8569874; то, если вам нужен номер для вычисления или что-то, вы удалите " из строки и преобразуете его в double.

Смежные вопросы