Mysql
 sql >> Database >  >> RDS >> Mysql

Perché M appare nei risultati della query MySQL di Clojure

M suffisso significa che il numero è BigDecimal . Puoi verificarlo in REPL

user=> (class 1)
java.lang.Long
user=> (class 1.0)
java.lang.Double
user=> (class 1M)
java.math.BigDecimal

Poiché il tipo di colonna del tuo database è decimal(5,2) e decimal(7,2) , non è sicuro convertire i numeri in float o double perché quei tipi a virgola mobile non possono rappresentare tutti i numeri di decimal(5,2) o decimal(7,2) accuratamente.

Puoi Google con la parola chiave "imprecisione in virgola mobile". Ci sono tonnellate di articoli e domande e risposte, anche all'interno di Stackoverflow.