Sqlite在Android上处理NaN值

时间:2011-11-20 12:28:21

标签: android sqlite

我正在尝试确定我是否在sqlite中发现了一个错误,或者只是在我的理解中(因为我没有很多经验)。 (而且,是的,我已经检查了sqlite bug跟踪器。)

我有一个Android,我想在数据库中存储双打。我还想存储一个记录,其中的值可能尚未设置(即无效)。要跟踪此状态,我想存储Double.NaN。

所以当我这样创建数据库表时

create table Example (myRecordId integer primary key autoincrement, someString text not null, problemDouble REAL);

在problemDouble为Double.NaN的位置插入一条记录,然后通过Cursor.getDouble(...)访问我将返回一个值为0.0的Java double。

现在,如果我以这种方式创建表格(使用文本而不是真实的)

create table Example (myRecordId integer primary key autoincrement, someString text not null, problemDouble text);

将Java double转换为字符串的记录插入并以相同的方式访问它,然后返回值为NaN的double。

我认为sqlite应该是无类型的,但是当列是REAL时,它似乎正在弄乱值。或者是sql REAL不支持NaN值吗?

我的假设是sqlite只是将REAL值转换为后台的字符串。

那么这种不一致会被视为错误吗?

0 个答案:

没有答案