Geändertes Verhalten in der Methode BigDecimal stripTrailingZeros für den Wert null

Java 8 führt eine Verhaltensänderung in der java.math.BigDecimal stripTrailingZeros Methode, wenn der Wert numerisch gleich null ist und eine Skala ungleich null aufweist. Anzahl der Kommastellen ist die Anzahl der Nullen rechts vom Dezimalzeichen. In den Java-Versionen vor Java 8 gibt die Methode stripTrailingZeros den Wert selbst zurück. In Java 8 gibt die Methode BigDecimal.ZERO zurück, d. h. den Wert null ohne Nachkommastellen.

Diese Regel markiert die Methode "java.math.BigDecimal stripTrailingZeros". Für diese Verhaltensänderung, die jetzt das erwartete Verhalten der Methode bewirkt, ist keine Codeänderung erforderlich. Beachten Sie diesen Unterschied bei den Vorbereitungen für den Einsatz von Java 8, weil er zum Fehlschlagen von Testfällen führen kann.

Das folgende Beispiel veranschaulicht die Verwendung der Methode stripTrailingZeros.

< span class="Code"> $openspan class= "JavaKeyword"> public static void < /span> printResults(< span class="JavaType">BigDecimal< /span> dec) {

System.out.print("Starting decimal = " + dec.toPlainString());
System.out.println(" scale = " + dec.scale());
dec = dec.stripTrailingZeros();
System.out.print("Ending decimal = " + dec.toPlainString());
System.out.println(" scale = " + dec.scale());
}

public static void main(String args[]) {

BigDecimal dec = new BigDecimal("0.000000");
printResults(dec);
}

Wenn Sie diesen Code mit Java 7 aufrufen, wird die folgende Ausgabe angezeigt:

Starting decimal = 0.000000 scale = 6
Ending decimal = 0.000000 scale = 6

In Java 8 wird die folgende Ausgabe angezeigt:

Starting decimal = 0.000000 scale = 6
Ending decimal = 0 scale = 0

Weitere Informationen zur Methode "BigDecimal" finden Sie in der Java-Dokumentation java.math.BigDecimal.