sqlite字段值在存储在双字段中时四舍五入

时间:2012-12-13 16:39:08

标签: android sqlite android-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

UPDATE - 当我执行下面的查询时,我检查该值并得到它给我相同的值存储在数据库中但是当我试图将它存储在一个双变量时它会以某种方式舍入它值,这就是为什么我在变量中得到不正确的值。对此有何解决方案?

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

结果: - 在将它存储到String或双变量时,值是变化,它给我低于值。

Latitude = 40.4127
Longitude = -74.25252

我不想将这些值四舍五入。有没有办法解决这个问题。

1 个答案:

答案 0 :(得分:2)

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

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