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

更新-以下のクエリを実行すると、値を調べて、DB内に格納されているのと同じ値が得られていることがわかりますが、double変数に格納しようとすると、値が丸められます。そのためです。変数の値が正しくありません。これに対する解決策はありますか?

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

結果:-文字列またはdouble変数に格納するとき、値は変更され、以下の値が返されます。

Latitude = 40.4127
Longitude = -74.25252

この値を四捨五入したくありません。この問題を解決する方法はありますか?

4

1 に答える 1

2

SQLite は、浮動小数点値を Java の と同じ形式の 64 ビット値として読み書きしますdouble。丸めが行われることはありません。

問題は、値を文字列に変換することです。DecimalFormatまたはのようなヘルパーを使用して、必要なFormatter桁数を指定します。

于 2012-12-13T22:37:18.403 に答える