M
суфикс означава, че числото е BigDecimal
. Можете да проверите това в REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Тъй като типът на колоната на вашата база данни е decimal(5,2)
и decimal(7,2)
, не е безопасно да конвертирате числата в float
или double
защото тези типове с плаваща запетая не могат да представят всички числа на decimal(5,2)
или decimal(7,2)
точно.
Можете да търсите в Google с ключовата дума „неточност с плаваща запетая“. Има много статии и въпроси и отговори, също в Stackoverflow.