C'est le résultat de l'initialisation de BigDecimal
de double
:
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Ainsi, lorsque BigDecimal
initialisé de cette manière est enregistré dans la base de données, il produit une valeur inexacte, qui est correctement chargée ultérieurement.
Si BigDecimal
est initialisé par une chaîne ou si la valeur est définie directement en Java, tout fonctionne correctement.