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 № 1Benutzen 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