gpt4 book ai didi

java - Android使用arraylist从数据库中获取数据

转载 作者:太空宇宙 更新时间:2023-11-04 13:45:50 24 4
gpt4 key购买 nike

我使用 arraylist 从数据库中获取数据,但一些 double 值会转换为舍入值。

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;
}

这里的纬度、经度和距离都是 double 值,距离与数据库相同,但纬度或经度不同,假设数据库中的纬度是22.8569874,但返回的是22.857

最佳答案

唯一的解释是数据库中的数据格式类似于double

如果查询读出它,它会将数字四舍五入到 4 位。

尝试将数据库中的值更改为字符串并按如下方式编写:22.8569874;然后,如果您需要计算数字或其他内容,请从字符串中删除 " 并将其转换为 double

关于java - Android使用arraylist从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30859333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com