String zu BigDecimal konvertieren
Es ist manchmal notwendig ein BigDecimal aus einem String zu erzeugen. Dabei kann es vorkommen, dass die konfigurierte Sprache (Locale) der JVM nicht zu der Eingabe passt. Denn Tausendertrennzeichen unterscheiden sich bei manchen Sprachen, sodass Zahlen falsch interpretiert würden. Die Klasse DecimalFormat ermöglicht die Angabe der Sprache, sodass eine fehlerhafte Interpretation vermieden wird.
@Test
public void test() throws ParseException {
DecimalFormat numberFormat = (DecimalFormat) DecimalFormat.getInstance(Locale.GERMAN);
numberFormat.setParseBigDecimal(true);
BigDecimal bd = (BigDecimal) numberFormat.parse("10,000");
System.out.println("BigDecimal: " + bd.setScale(2, RoundingMode.HALF_UP));
}
In dem Beispiel wird darüber hinaus die Anzahl der Nachkommastellen auf 2 reduziert.