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.


Jens Kötterheinrich

java

31.01.2020

Kommentare oder Kontakt gern über Twitter oder die anderen Plattformen.