Mam ten ciąg: 10,692,467,440,017,120 (jest to kwota).Jak przeanalizować ciąg do BigDecimal?
Chcę przetworzyć go do BigDecimal. Problem polega na tym, że wypróbowałem zarówno DecimalFormat, jak i NumbeFormat na próżno. Każda pomoc?
Mam ten ciąg: 10,692,467,440,017,120 (jest to kwota).Jak przeanalizować ciąg do BigDecimal?
Chcę przetworzyć go do BigDecimal. Problem polega na tym, że wypróbowałem zarówno DecimalFormat, jak i NumbeFormat na próżno. Każda pomoc?
Spróbuj
// 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);
Jeśli budujesz aplikacji ze wsparciem I18N należy użyć DecimalFormatSymbols(Locale)
Należy także pamiętać, że decimalFormat.parse
może rzucić ParseException
więc trzeba go obsłużyć (z try/catch) lub wyrzucić go i niech inna część twojego programu obsłuży go
BigDecimal oferuje konstruktor ciągów. Będziesz musiał usunąć wszystkie przecinki z numeru, za pośrednictwem regex lub String filteredString=inString.replaceAll(",","")
.
Następnie wystarczy zadzwonić BigDecimal myBigD=new BigDecimal(filteredString);
Można również utworzyć NumberFormat
i nazywają setParseBigDecimal(true)
. Następnie parse(
da ci BigDecimal bez obawy o ręczne formatowanie.
Spróbuj prawidłowego konstruktora http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String)
Można bezpośrednio instanciate z BigDecimal z String;)
Przykład:
BigDecimal bigDecimalValue= new BigDecimal("0.5");
BigDecimal nie będzie w stanie przeanalizować przykładowego ciągu znaków. – Tarynn
Spróbuj
String str="10,692,467,440,017.120".replaceAll(",","");
BigDecimal bd=new BigDecimal(str);
@jlordo tak Edytowałem swoją odpowiedź –
Pokaż nam, co próbujesz. Pomożemy – Tala