M přípona znamená, že číslo je BigDecimal . Můžete to zkontrolovat v REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Protože typ sloupce vaší databáze je decimal(5,2) a decimal(7,2) , není bezpečné převádět čísla na float nebo double protože tyto typy s plovoucí desetinnou čárkou nemohou reprezentovat všechna čísla decimal(5,2) nebo decimal(7,2) přesně.
Můžete googlit s klíčovým slovem „nepřesnost s plovoucí desetinnou čárkou“. Existuje spousta článků a otázek a odpovědí, také v rámci Stackoverflow.