M
sufijo significa que el número es BigDecimal
. Puedes comprobar esto en REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Dado que el tipo de columna de su base de datos es decimal(5,2)
y decimal(7,2)
, no es seguro convertir los números a float
o double
porque ese tipo de coma flotante no puede representar todos los números de decimal(5,2)
o decimal(7,2)
con precisión.
Puede buscar en Google con la palabra clave "inexactitud de coma flotante". Hay toneladas de artículos y preguntas y respuestas, también dentro de Stackoverflow.