M
suffix berarti angkanya adalah BigDecimal
. Anda dapat memeriksa ini di REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Karena tipe kolom database Anda adalah decimal(5,2)
dan decimal(7,2)
, tidak aman untuk mengonversi angka menjadi float
atau double
karena tipe floating point tersebut tidak dapat mewakili semua angka decimal(5,2)
atau decimal(7,2)
akurat.
Anda bisa googling dengan kata kunci "floating point inaccuracy". Ada banyak sekali artikel dan Tanya Jawab, juga di dalam Stackoverflow.