0

我已将位置存储在我的 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

我不想四舍五入这个值。有什么办法可以解决这个问题。

4

1 回答 1

2

SQLites 将浮点值作为 64 位值写入和读取,其格式与 Java 的double. 从来没有任何四舍五入。

您的问题是将值转换为字符串。使用类似DecimalFormat或的助手Formatter来指定您想要的位数。

于 2012-12-13T22:37:18.403 回答