Create Table:
db.execSQL("CREATE TABLE " + PERSONS_TABLE + " ("
        + PersonsColumns.ID
        + " INTEGER PRIMARY KEY AUTOINCREMENT, "
        ...
            + PersonsColumns.HEIGHT + " FLOAT, "
                    + PersonsColumns.CITY + " STRING);");
Write Data:
ContentValues values = new ContentValues();
alues.put(PersonsColumns.HEIGHT, 1.7976931348623157E308);
db.insertOrIgnore(values);

您可以看到值 1.7976931348623157E308 超出了 sqlite 中的 FLOAT 值范围(4 个字节)。为什么它可以正确存储这个值?

最佳答案

SQLite 是“无类型的”。您可以在任何表的任何列中存储您想要的任何类型的数据,而不管该列的声明数据类型如何

SQLite 还允许省略数据类型。

10-07 19:22