2011-06-24 5 views
0

SQLiteデータベースから浮動小数点の加算に問題があります。私は私のテーブルを次のように作成しました。ここでは、列sql4を介してFLOATとして列 'amount'を設定しました。android appのSQLiteデータベースから浮動小数点数を計算する

私はEditTextの値を入力していますが、ユーザが値を入力すると、ContentValues cv2を介してデータベースに入力されます。

これはすべて正常に動作します。データベースを外部でチェックすると、10進値が記録されます。しかし、私がmCursor1で検索しようとすると、2.21と6.97の連続した2つのエントリを作成した後、出力は9.18ではなく9.0と表示されます...... しかし、xmlファイルにデータを出力してexcel私は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); 
+0

)。 – joey

答えて

1

あなたは

mCursor1.getInt(0); 

を使用しているが、あなたは

mCursor1.getFloat(0); 
+0

それは、歓声! – hotshots

1

代わりmCursor1.getInt()mCursor1.getDouble()mCursor1.getFloat()を使用してみてください。

+0

ありがとう、それを見つけていない、治療を働いた! – hotshots

1
total1 = mCursor1.getInt(0); 

を使用する必要がありますここで問題です。通貨のための浮動小数点数を使用しないでください

関連する問題