Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que M aparece nos resultados da consulta do Clojure MySQL


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.