Mudança de comportamento no método BigDecimal stripTrailingZeros para um valor zero

Java 8 introduz uma mudança de comportamento no java.math.BigDecimal stripTrailingZeros quando o valor é numericamente igual a zero e possui uma escala diferente de zero. Scale é o número de zeros à direita da vírgula decimal. Antes do Java 8, o método stripTrailingZeros retornava o valor em si. No Java 8, o método retorna BigDecimal.ZERO, que é o valor zero com uma escala zero.

Essa regra sinaliza o método java.math.BigDecimal stripTrailingZeros. Nenhuma mudança de código é necessária para essa mudança de comportamento, que agora produz o comportamento esperado do método. Ao se preparar para usar o Java 8, esteja ciente dessa diferença porque isso pode fazer com que os casos de teste falhem.

O exemplo a seguir mostra o uso do método 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.stripTrapTrailingZeros () ;
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 você chamar esse código usando o Java 7, a saída a seguir será exibida:

Starting decimal = 0.000000 scale = 6
Decimal final = 0,000000 escala = 6

No Java 8, a saída a seguir é exibida:

Starting decimal = 0.000000 scale = 6
Decimal final = 0 scale = 0

Para obter mais informações sobre o método BigDecimal, consulte a documentação Java java.math.BigDecimal.