From mysql doc:
La sintassi di dichiarazione di una colonna DECIMAL è decimale (M, D). Gli intervalli di valori per gli argomenti sono i seguenti:
- M è il numero massimo di cifre (la precisione). Ha un intervallo di da 1 a 65.
- D è il numero di cifre a destra del punto decimale (la scala). Ha una gamma da 0 a 30 e non deve essere più grande di M.
NB: - M non è totale. di cifre prima del punto decimale + totale n. di cifre dopo il punto decimale.
Nel tuo caso, 7.50
ha un totale di 3 cifre e 10.50
ha un numero totale di 4 cifre. Ma il massimo dichiarato di cifre per la colonna è 2 in modo che possa memorizzare un valore massimo di due cifre. Non puoi nemmeno memorizzare 1 perché è 1,00 cioè 3 cifre totali. Quindi il valore massimo consentito di 2 cifre nella colonna è .99
.
Se si desidera memorizzare xx.xx allora si deve dichiarare (4, 2), dove 4 è M e 2 è D.
Se si desidera memorizzare un numero illimitato alla massima dimensione consentita di mysql allora si può dichiarare una colonna con (65, 30).
N. max. di cifre prima della virgola = M - D
possibile duplicato di [Come memorizzare valori decimali in SQL Server?] (Http://stackoverflow.com/questions/813287/how-to-store-decimal-values-in-sql-server) – Arun