Det er et resultat af initialisering af BigDecimal
fra double
:
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Så når BigDecimal
initialiseret på denne måde gemmes i databasen, producerer den en unøjagtig værdi, som indlæses korrekt senere.
Hvis BigDecimal
initialiseres af streng, eller hvis værdien er sat direkte i Java, fungerer alt fint.