Het is het resultaat van het initialiseren van BigDecimal van double :
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Dus, wanneer BigDecimal op deze manier geïnitialiseerd wordt opgeslagen in de database, produceert het een onnauwkeurige waarde, die later correct wordt geladen.
Als BigDecimal wordt geïnitialiseerd door een string of als de waarde rechtstreeks in Java wordt ingesteld, werkt alles goed.