Я столкнулся с проблемой, которую не могу решить.Перепробовал различные решения, описанные на сайте, безрезультатно.Я передаю строку « total », которая переводится в 30.00, но в Doubleparse она меняется на 30.0
Мне нужно, чтобы double было 30.00
, потому что его нужно добавить вarraylist, а также отображается как текст, как 30.00
, а не как 30.0
Я пытался
DecimalFormat df = new DecimalFormat("#.##");
Double number_total = Double.parseDouble(df.format(total));
ОШИБКА: java.lang.IllegalArgumentException: Badкласс: класс java.lang.String в java.text.NumberFormat.format (NumberFormat.java:304) в java.text.DecimalFormat.format (DecimalFormat.java:702) в java.text.Format.format (Format.java: 93) на com.example.jc.salesman.MainActivity.Totais (MainActivity.java:338) на com.example.jc.salesman.MainActivity $ 2.onClick (MainActivity.java:235)
String strSum = ((String.format("%.2f", Double.toString(sum))));
ОШИБКА: Процесс: com.example.jc.salesman, PID: 26845 java.util.IllegalFormatConversionException:% f не может отформатировать
java.lang.String аргументы в java.util.Formatter.badArgumentType (Formatter.java:1489) в java.util.Formatter.transformFromFloat (Formatter.java:2038) в java.util.Formatter.transform (Formatter.java:1465) в java.util.Formatter.doFormat (Formatter.java:1081) в java.util.Formatter.format (Formatter.java:1042) в java.util.Formatter.format (Formatter.java: 1011) в java.lang.String.format (String.java:1999) в java.lang.String.format (String.java:1973) в
com.example.jc.salesman.MainActivity.Totais (MainActivity.java:368)
Я даже заставил Locale в main,
Locale.setDefault(new Locale("en", "US"));
Пожалуйста, ПОМОГИТЕ:)
public void Total (String total){
Log.d("log2","total: " + total);// it prints 30.00
Double number_total = Double.parseDouble(total);
Log.d("log2","number_total: " + total);// it prints 30.0
losing a decimal place.
array_Total.add (number_total); //Arraylist<Double
sum (double) = sum + number_total;
String strSum = (Double.toString(sum));
total.setText (strSum);
}