我正在尝试处理一些 Android 数据库/sql 的东西,但遇到了障碍。我遇到了一些错误,我想我应该稍微缩小问题范围,而不是在这里粘贴大量代码。我正在关注该线程中的第二个响应:
Creating tables in sqlite database on android
并注意到他们使用“INTEGER”类型来定义列。
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + DATABASE_MARKSTABLE + " (" +
KEY_STUID + " TEXT PRIMARY KEY, " +
KEY_SUB1 + " TEXT NOT NULL, " +
KEY_SUB2 + " TEXT NOT NULL, " +
KEY_SUB3 + " TEXT NOT NULL, " +
KEY_MARKS1 + " **INTEGER** NOT NULL, " +
KEY_MARKS2 + " **INTEGER** NOT NULL, " +
KEY_MARKS3 + " **INTEGER** NOT NULL);"
);
}
我的数据库将使用美元金额和百分比,这意味着我需要小数位。我的问题是,这里可以使用 DOUBLE 的定义吗?它会起作用吗?有没有像 FLOAT 这样更好的选择?
我不只是在代码中尝试这个的唯一原因是我的一堆错误可能掩盖了潜在的问题,并且我可能会得到错误的答案。
最佳答案
如果可以的话,考虑使用 Real。
这些是创建表时可以使用的基本类型:
空。该值为 NULL 值。
整数。该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
真实。该值为浮点值,存储为 8 字节 IEEE float 。
文本。该值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB。该值是一团数据,完全按照输入时的方式存储。
更多信息here
关于java - 如何通过 SQLite 在 Android 中使用 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22449540/