Jest to wynik inicjalizacji BigDecimal
z double
:
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Tak więc, gdy BigDecimal
zainicjowana w ten sposób jest zapisywana w bazie danych, tworzy niedokładną wartość, która jest później poprawnie ładowana.
Jeśli BigDecimal
jest inicjowany przez ciąg znaków lub jeśli wartość jest ustawiona bezpośrednio w Javie, wszystko działa dobrze.