/ / Wie werden unbedeutende Nullen beim Konvertieren eines BigDecimal-Werts in einen String in Java gelöscht? - java, tostring, bigdecimal

Wie lassen sich unwichtige Nullen beim Konvertieren eines BigDecimal in einen String in Java löschen? - Java, Zahnring, bigdezimal

java.math.BigDecimal.toString() kann etwas wie "0.888200000" zurückgeben. Was kann das Beste sein, was ich tun kann, wenn ich stattdessen "0.8882" möchte? Ich kann nie die Länge der Ganzzahl (links zum Punkt) berechnen (es sei denn, ich berechne es für jeden speziellen Fall), der Wert kann 123.8882 sein, so einfach wie 123456.88.

Antworten:

10 für die Antwort № 1

Benutzen stripTrailingZeros():

Gibt ein BigDecimal zurück, das numerisch diesem entspricht, wobei jedoch alle nachfolgenden Nullen aus der Darstellung entfernt werden.

Sehen http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigDecimal.html


1 für die Antwort № 2

Oder wenn Sie sich für reguläre Ausdrücke interessieren:

Pattern p = Pattern.compile("(.*?)0*$");
Matcher m = p.matcher(yourString);
String result=m.group(1);

das könnte schneller sein als all die unordentlichen Sachen die BigInteger Klasse macht intern in seiner stripTrailingZeroes Methode