A Java 8 bevezet egy viselkedésváltozást a
java.math.BigDecimal stripTrailingZeros
metódusban, amikor az érték egy numerikusan nullával egyenlő érték egy
nem nulla skálán.
A scale (skála) a
tizedesponttól jobbra lévő nullák száma.
A Java 8 előtt a
stripTrailingZeros metódus magát az értéket adta vissza.
A
Java 8 változatban a metódus a BigDecimal.ZERO értéket adja
vissza, ami nulla érték egy nulla skálával.
Ez a szabály megjelöli a java.math.BigDecimal stripTrailingZeros metódust. A viselkedésváltozás miatt nincs szükség a kód módosítására, amely most a metódus elvárt viselkedését adja. A Java 8 használatára való felkészülés során legyen tudatában ennek a különbségnek, mivel ez a tesztesetek meghiúsulását okozhatja.
A következő példa bemutatja a stripTrailingZeros
metódus használatát.
|
public static void printResults(BigDecimal 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); } |
Ha ezt a kódot Java 7 használatával hívja meg, akkor a következő kimenet jelenik meg:
Starting decimal = 0.000000 scale = 6Java 8 használata esetén a következő kimenet jelenik meg:
Starting decimal = 0.000000 scale = 6A BigDecimal metódussal kapcsolatos további információkért tekintse meg a java.math.BigDecimal Java dokumentációt.