M
hậu tố có nghĩa là số đó là BigDecimal
. Bạn có thể kiểm tra điều này trong REPL
user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal
Vì loại cột cơ sở dữ liệu của bạn là decimal(5,2)
và decimal(7,2)
, không an toàn khi chuyển đổi các số thành float
hoặc double
bởi vì loại dấu phẩy động đó không thể đại diện cho tất cả các số decimal(5,2)
hoặc decimal(7,2)
chính xác.
Bạn có thể google với từ khóa "độ chính xác dấu phẩy động". Có rất nhiều bài báo và Hỏi &Đáp, cũng trong Stackoverflow.