SQLite 字段值在存储在双精度字段中时四舍五入



我已经在我的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 相同。从来没有任何四舍五入。

您的问题在于将值转换为字符串。使用帮助程序(如 DecimalFormatFormatter)指定所需的位数。

最新更新