Ini adalah hasil dari inisialisasi BigDecimal
dari double
:
System.out.println(String.format("%21.20f", new BigDecimal(0.493));
// Prints 0,49299999999999999378
Jadi, ketika BigDecimal
diinisialisasi dengan cara ini disimpan dalam database, menghasilkan nilai yang tidak akurat, yang kemudian dimuat dengan benar.
Jika BigDecimal
diinisialisasi oleh string atau jika nilainya disetel langsung di Java semuanya berfungsi dengan baik.