Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android应用程序添加一个价格=1000将返回总计=1_Android_Number Formatting_Decimal Point - Fatal编程技术网

android应用程序添加一个价格=1000将返回总计=1

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

我有一个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() {

    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