È il risultato dell'inizializzazione di BigDecimal
da double
:
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Quindi, quando BigDecimal
inizializzato in questo modo viene salvato nel database, produce un valore impreciso, che viene caricato correttamente in seguito.
Se BigDecimal
è inizializzato da stringa o se il valore è impostato direttamente in Java tutto funziona correttamente.