Modificarea comportamentului în metoda BigDecimal stripTrailingZeros pentru o valoare zero

Java 8 introduce o schimbare de comportament în java.math.BigDecimal stripTrailingZeros metoda atunci când valoarea este numeric egală cu zero și are o scală non-zero. Scale este numărul de zerouri la dreapta punctului zecimal. Anterior versiunii Java 8, metoda stripTrailingZeros a returnat valoarea în sine. În Java 8, metoda returnează BigDecimal.ZERO, care este valoarea zero cu o scală de zero.

Această regulă semnalează metoda java.math.BigDecimal stripTrailingZeros. Nu este necesară nicio schimbare de cod pentru această schimbare de comportament care acum produce comportamentul aşteptat al metodei. Întrucât vă pregătiţi să folosiţi Java 8, fiţi conştient de această diferenţă pentru că ar putea cauza eşuarea cazurilor de test.

Următorul exemplu arată utilizarea metodei 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);
}

Dacă apelaţi acest cod folosind Java 7, este afişat următorul rezultat:

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

În Java 8, este afişat următorul rezultat:

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

Pentru mai multe informaţii despre metoda BigDecimal, vedeţi documentaţia Java java.math.BigDecimal.