Java 8 introduce un cambiamento del comportamento nel metodo java.math.BigDecimal stripTrailingZeros quando il valore è numerico ed 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.
|
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); } |
Se si richiama questo codice utilizzando Java 7, viene visualizzato il seguente output:
Starting decimal = 0.000000 scale = 6In Java 8, viene visualizzato il seguente output:
Starting decimal = 0.000000 scale = 6Per ulteriori informazioni sul metodo BigDecimal, consultare la documentazione Java java.math.BigDecimal.