当前位置:首页 > 数据库 > SQlite

android-在SQLite中获取列值的总和

我在SQLite中有一个具有以下结构的表:

 String CREATE_TOTAL_PRICE = "CREATE TABLE " + TOTAL_PRICE + "("
                + KEY_TPID + " INTEGER PRIMARY KEY,"
                + KEY_TPRICE + " REAL" + ")";

我正在尝试获取KEY_TPRICE列的所有列值的总和.
我正在使用这种似乎有效的方法:

 public int getTotalOfAmount() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery("SELECT SUM(total_price) FROM " + TOTAL_PRICE, null);
        c.moveToFirst();
        int i = c.getInt(0);
        c.close();
        return i;
    }

但是问题出在显示值时.

您看到我输入的数据为50.01,5.5,得到总数时我得到55,事实并非如此.

当我从外部运行查询时,实际总数为55.51.

我尝试将REAL,INTEGER,FLOAT,DOUBLE设置为我的列数据类型,但仍然

什么才是我的数字?请帮我的建议.

解决方法:

我认为您收到的是55,因为您将其读为“ int”

int i = c.getInt(0);

这就是为什么它被“转换”为int(55)的原因.

根据问题https://stackoverflow.com/a/17947203/4860513,似乎SUM()将返回与您正在读取的列相同格式的数字.因此,尝试将其读取为double / float并共享结果:

 float i = c.getFloat(0);
 double i = c.getDouble(0);

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!