M 接尾辞は、番号がBigDecimalであることを意味します 。これはREPLで確認できます
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
データベースの列タイプはdecimal(5,2)であるため およびdecimal(7,2) 、数値をfloatに変換するのは安全ではありません またはdouble これらの浮動小数点型は、decimal(5,2)のすべての数値を表すことができないためです。 またはdecimal(7,2) 正確に。
「浮動小数点の不正確さ」というキーワードでグーグルできます。 Stackoverflow内にも、たくさんの記事やQ&Aがあります。