我已经在我的sqlite数据库中存储了位置。
CREATE TABLE city
(
latitude NUMERIC,
longitude NUMERIC
)
以下是值:-
latitude = 41.0776605;//value in db - NUMERIC stored as DB - also tried with TEXT
longitude = -74.170086;//value in db - NUMERIC stored as DB - also tried with TEXT
更新 - 当我执行以下查询时,我检查该值并得到它给我的与存储在数据库中的值相同,但是当我尝试将其存储在双精度变量中时,它会以某种方式将其四舍五入值,这就是为什么我在变量中得到不正确的值。有什么解决方案吗?
final String query = "SELECT * FROM city";
cursor = myDataBase.rawQuery(query, null);
if (null != cursor) {
while (cursor.moveToNext()) {
Log.i(TAG, "Latitude == " + cursor.getDouble(cursor.getColumnIndex("latitude")));
Log.i(TAG, "Longitude == " + cursor.getDouble(cursor.getColumnIndex("longitude")));
}
}
结果:- 在将其存储为字符串或双精度变量时,值会发生变化,它给我的值低于我。
Latitude = 40.4127
Longitude = -74.25252
我不想四舍五入这个值。有没有办法解决这个问题。
SQLites 将浮点值写入和读取为 64 位值,该值的格式与 Java 的 double
相同。从来没有任何四舍五入。
您的问题在于将值转换为字符串。使用帮助程序(如 DecimalFormat
或 Formatter
)指定所需的位数。