M
przyrostek oznacza, że liczba to BigDecimal
. Możesz to sprawdzić w REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Ponieważ typ kolumny bazy danych to decimal(5,2)
i decimal(7,2)
, nie jest bezpieczne konwertowanie liczb na float
lub double
ponieważ te typy zmiennoprzecinkowe nie mogą reprezentować wszystkich liczb decimal(5,2)
lub decimal(7,2)
dokładnie.
Możesz wygooglować za pomocą słowa kluczowego „niedokładność zmiennoprzecinkowa”. Istnieje mnóstwo artykułów i pytań i odpowiedzi, również w Stackoverflow.