M
sufixo significa que o número é BigDecimal
. Você pode verificar isso em REPL user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Como o tipo de coluna do seu banco de dados é
decimal(5,2)
e decimal(7,2)
, não é seguro converter os números para float
ou double
porque esses tipos de ponto flutuante não podem representar todos os números de decimal(5,2)
ou decimal(7,2)
com precisão. Você pode pesquisar no Google com a palavra-chave "imprecisão de ponto flutuante". Há toneladas de artigos e perguntas e respostas, também no Stackoverflow.