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.