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.