次のように、Android ベースの SQLite データベースに float を入れています。
private static final String DATABASE_CREATE =
"create table " + DATABASE_TABLE + " ("
+ KEY_ID + " integer primary key autoincrement, "
+ KEY_FLOAT + " REAL, " + ...
...
content.put(KEY_FLOAT, 37.3f);
db.insert(DATABASE_TABLE, null, content);
テーブルをクエリすると:
Cursor cursor = db.query(false, DATABASE_TABLE,
new String[] { KEY_ID, KEY_FLOAT, ... },
KEY_LATITUDE + "=37.3",
null, null, null, null, null);
カーソルは空に戻ります。float の値を 37.0 に変更すると、正しく動作し、カーソル内のレコードが返されます。
データベース列の仕様を「REAL」から「float」に変更するなどして、これをある程度テストしました。小数点の後に小数部分がある限り、カーソルは空を返します。何が起こっている?
前もって感謝します!