Проблема суммирования чисел из базы данных SQLite для приложения Android - PullRequest
0 голосов
/ 24 июня 2011

У меня проблема с правильным суммированием чисел из моей базы данных SQLite.Я создал свою таблицу следующим образом, где я установил столбец «количество» как FLOAT через строку sql4.

У меня есть EditText «значение», где пользователь вводит значение, затем оно вводится вбаза данных как через ContentValues cv2.

Все это прекрасно работает, когда я проверяю базу данных извне, записывается десятичное значение.Однако, когда я пытаюсь получить его через mCursor1, вывод отображается как 9.0 вместо 9.18 после того, как я сделал две последовательные записи 2.21 и 6.97 …… .. Однако, когда я вывожу данные в файл xml и делаю добавление в Excel Iдостичь 9,18.Это заставило бы меня поверить, что это должно быть что-то из-за mCursor1, но я только догадываюсь.Есть идеи, где моя проблема?

String sql4 = "create table tracker (_id INTEGER PRIMARY KEY " +
        "AUTOINCREMENT, category_name TEXT NOT NULL, date DATE NOT NULL, place NUMERIC NOT NULL," +
        "amount FLOAT NOT NULL, day_id INTEGER NOT NULL, week_id INTEGER NOT NULL," +
        "month_id INTEGER NOT NULL, year_id INTEGER NOT NULL)";

ContentValues cv2 = new ContentValues();
cv2.put("amount", value.getText().toString());
mDb.insert("tracker", null, cv2);

float total1 = 0;
            mCursor1 = mDb.rawQuery(
                    "SELECT SUM(amount) FROM tracker", null);
                if(mCursor1.moveToFirst()) {
                    total1 = mCursor1.getInt(0);
                }
            mCursor1.close();

            String a = Float.toString((float)total1);           
            displayTotal.setText("Total €" + a);

Ответы [ 3 ]

1 голос
/ 24 июня 2011

вы используете

mCursor1.getInt(0);

, но вы должны использовать

mCursor1.getFloat(0);
1 голос
/ 24 июня 2011
total1 = mCursor1.getInt(0); 

Вот ваша проблема;)

1 голос
/ 24 июня 2011

Попробуйте использовать mCursor1.getDouble() или mCursor1.getFloat() вместо mCursor1.getInt().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...