From mysql doc:
Cú pháp khai cho một cột thập phân là DECIMAL (M, D). Phạm vi giá trị cho đối số như sau:
- M là số chữ số tối đa (độ chính xác). Nó có một phạm vi của 1 đến 65.
- D là số chữ số ở bên phải của dấu thập phân (tỷ lệ). Nó có một phạm vi từ 0 đến 30 và phải không lớn hơn M.
NB: - M là tổng số không. các chữ số trước dấu thập phân + tổng số không. các chữ số sau dấu thập phân.
Trong trường hợp của bạn, 7.50
có tổng số không có 3 chữ số và 10.50
có tổng số không có 4 chữ số. Nhưng mức tối đa được khai báo là không. các chữ số cho cột là 2 để nó có thể lưu trữ giá trị tối đa hai chữ số. Bạn thậm chí không thể lưu trữ 1 vì đó là 1,00 tức là tổng số 3 chữ số. Vì vậy, giá trị tối đa cho phép 2 chữ số trong cột là .99
.
Nếu bạn muốn lưu trữ xx.xx sau đó bạn phải khai báo (4, 2), nơi 4 là M và 2 là D.
Nếu bạn muốn lưu trữ bất kỳ số lượng tối đa kích thước cho phép của mysql thì bạn có thể khai báo một cột với (65, 30).
Số không tối đa. các chữ số trước dấu thập phân = M - D
bản sao có thể có của [Cách lưu trữ giá trị thập phân trong SQL Server?] (Http://stackoverflow.com/questions/813287/how-to-store-decimal-values-in-sql-server) – Arun