Cambiamento del comportamento nel metodo BigDecimal stripTrailingZeros per il valore zero

Java 8 introduce una modifica del comportamento nel java.math.BigDecimal stripTrailingZeros quando il valore è numericamente uguale a zero e ha una scala diversa da zero. Scala è il numero di zero alla destra del separatore decimale. Prima di Java 8, il metodo stripTrailingZeros ha restituiva il valore stesso. In Java 8, il metodo restituisce BigDecimal.ZERO, che è il valore zero con scala zero.

Questa regola contrassegna il metodo java.math.BigDecimal stripTrailingZeros. Nessun è necessario modificare il codice per questo cambiamento del comportamento, che ora produce il comportamento previsto del metodo. Quando ci si prepara ad utilizzare Java 8, tenere presente questa differenza perché potrebbe determinare il non superamento degli scenari di test.

Il seguente esempio mostra l'utilizzo del metodo stripTrailingZeros.

< span class="Code"> < span 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);
}

Se si richiama questo codice utilizzando Java 7, viene visualizzato il seguente output:

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

In Java 8, viene visualizzato il seguente output:

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

Per ulteriori informazioni sul metodo BigDecimal, consultare la documentazione Java java.math.BigDecimal.