Подтвердить что ты не робот

Как я могу разбирать строку в BigDecimal?

У меня есть эта строка: 10,692,467,440,017.120 (это сумма).

Я хочу разобрать его в BigDecimal. Проблема в том, что я пробовал как DecimalFormat, так и NumbeFormat напрасно. Любая помощь?

4b9b3361

Ответ 1

Попробуйте это

// Create a DecimalFormat that fits your requirements
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
symbols.setDecimalSeparator('.');
String pattern = "#,##0.0#";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
decimalFormat.setParseBigDecimal(true);

// parse the string
BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse("10,692,467,440,017.120");
System.out.println(bigDecimal);

Если вы создаете приложение с поддержкой I18N, вы должны использовать DecimalFormatSymbols(Locale)

Также имейте в виду, что decimalFormat.parse может вызывать ParseException, поэтому вам нужно обработать его (с помощью try/catch) или выбросить его, а другая часть вашей программы обработать его

Ответ 2

Попробуйте это

 String str="10,692,467,440,017.120".replaceAll(",","");
 BigDecimal bd=new BigDecimal(str);

Ответ 4

BigDecimal предлагает конструктор строк. Вам нужно будет удалить все запятые из числа, через регулярное выражение или String filteredString=inString.replaceAll(",","").

Затем вы просто вызываете BigDecimal myBigD=new BigDecimal(filteredString);

Вы также можете создать NumberFormat и вызвать setParseBigDecimal(true). Затем parse( предоставит вам BigDecimal, не беспокоясь о форматировании вручную.