android应用程序添加一个价格=1000将返回总计=1
我有一个android应用程序,它从EditText获取价格和数量,并计算sum1=数量\价格\ 1等。总计=sum1+sum2等。 当我做类似于1.1+1.1=2.2的事情时,计算是正确的!对的 当我加上1+1000一千,那么它给我的总数=2!错误的它应该是总计=1001 我尝试了1+1000.00,但editText的值仍然为1000,问题仍然存在 . 是小数点,逗号是分组 我的sqlite数据库 关键字价格+整数, 求和android应用程序添加一个价格=1000将返回总计=1,android,number-formatting,decimal-point,Android,Number Formatting,Decimal Point,我有一个android应用程序,它从EditText获取价格和数量,并计算sum1=数量\价格\ 1等。总计=sum1+sum2等。 当我做类似于1.1+1.1=2.2的事情时,计算是正确的!对的 当我加上1+1000一千,那么它给我的总数=2!错误的它应该是总计=1001 我尝试了1+1000.00,但editText的值仍然为1000,问题仍然存在 . 是小数点,逗号是分组 我的sqlite数据库 关键字价格+整数, 求和 public String getSum() { Stri
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));
提前感谢您的努力。Float.parseFloat方法会忽略逗号之后的所有内容。您必须先删除逗号:
quantity_1=Float.parseFloat(edittext_quantity_1.getText().toString().replace(",", ""));
price_1=Float.parseFloat(edittext_price_1.getText().toString().replace(",", ""));
逗号已删除,但问题仍然存在。。1+1000表示总计=2。它将对一个空格执行相同的操作。你需要删除除数字和小数点以外的所有内容。哦,对不起,我给了你一个空字符,所以你把它解释为一个空格。我已经编辑了答案,改为使用字符串。啊哈,好了,现在它是1+1000=1001。谢谢你的努力回答正确:P