2014-10-06 65 views
0

我有一個Android應用程序,它需要EditTexts的價格和數量,並計算sum1 = quantity_1 * price_1等。total = sum1 + sum2等。 計算是正確的如1.1 + 1.1 = 2.2!正確! 當我加1 + 1,000(一千),那麼它給我總= 2!錯誤!它應該是總數= 1,001。Android應用程序添加價格= 1,000返回total_sum = 1

(我試過1 + 1000.00,但仍然editText取值1000,問題仍然存在) 。是小數點,(逗號)的分組

我SQLite數據庫

  • KEY_PRICE + 「INTEGER,」

越來越總和

public String getSum() { 

    String sumresult = null; 
    SQLiteDatabase database = this.getReadableDatabase(); 
    String selectQuery = "SELECT SUM(price) FROM price_table WHERE etc etc; 
    Cursor cursor = database.rawQuery(selectQuery, null); 
    if (cursor.moveToFirst()) { 
     do { 
     sumresult = cursor.getString(0); 
     } while (cursor.moveToNext()); 
    }   
    return sumresult; 
    } 

和計算是如何做

quantity_1=Float.parseFloat(edittext_quantity_1.getText().toString()); 
    price_1=Float.parseFloat(edittext_price_1.getText().toString()); 
    sum1=quantity_1*price_1; 

//等爲SUM2

total= sum1 + sum2; 
DecimalFormat df = new DecimalFormat("####.##"); 
total = Float.valueOf(df.format(total)); 
NumberFormat formatter = NumberFormat.getInstance(Locale.US);  
edittext_total_price.setText(formatter.format(total)); 

預先感謝你的努力。

回答

0

Float.parseFloat方法忽略逗號後面的所有內容(包括)。你必須首先刪除逗號:

quantity_1=Float.parseFloat(edittext_quantity_1.getText().toString().replace(",", "")); 
price_1=Float.parseFloat(edittext_price_1.getText().toString().replace(",", "")); 
+0

逗號刪除,但問題依然存在。1 + 1 000給出了總= 2 – 2014-10-06 23:08:38

+0

它會做同樣的事情用一個空間。您需要刪除除數字和小數點以外的所有內容。 – 2014-10-07 00:31:20

+0

哦,對不起,我給了你一個空的字符文字,所以你已經將它解釋爲一個空間。我編輯了使用字符串的答案。 – 2014-10-07 00:34:51

相關問題