Java 8 a ajouté un changement de comportement dans la méthode
java.math.BigDecimal stripTrailingZeros lorsque la valeur est égale à zéro et
a une échelle différente de zéro.
Echelle correspond au nombre de zéros après la virgule.
Avant Java 8, la méthode stripTrailingZeros renvoyait la valeur elle-même.
Dans Java 8, la méthode renvoie BigDecimal.ZERO, ce qui correspond à la valeur zéro avec
une échelle égale à zéro.
Cette règle marque la méthode java.math.BigDecimal stripTrailingZeros. Aucune modification de code n'est requise pour ce changement de comportement. La méthode fonctionne dorénavant comme cela était prévu. Alors que vous préparez à utiliser Java 8, prenez en compte cette différence car elle peut provoquer l'échec de ces scénarios de test.
L'exemple suivant présente l'utilisation de la méthode 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); } |
Si vous appelez ce code en utilisant Java 7, la sortie suivante s'affiche :
Starting decimal = 0.000000 scale = 6Dans Java 8, la sortie suivante s'affiche :
Starting decimal = 0.000000 scale = 6Pour plus d'informations sur la méthode BigDecimal, voir la documentation Java java.math.BigDecimal.