Không cần format thủ công - hãy dùng kiểu dữ liệu DECIMAL(precision, scale) (hoặc NUMERIC).
Ví dụ minh họa
Tạo bảng với cột DECIMAL(10,2) - tổng 10 chữ số, 2 chữ số sau dấu phẩy:
mysql> CREATE TABLE DemoTable1330 (
Amount DECIMAL(10,2)
);
Chèn dữ liệu (số nhập vào có nhiều chữ số thập phân hơn):
mysql> INSERT INTO DemoTable1330 VALUES(10944.7893); -- cảnh báo: Data truncated mysql> INSERT INTO DemoTable1330 VALUES(9848.44); mysql> INSERT INTO DemoTable1330 VALUES(8009.90); mysql> INSERT INTO DemoTable1330 VALUES(1000.99);
Xem kết quả (tự động làm tròn):
mysql> SELECT * FROM DemoTable1330;
+----------+ | Amount | +----------+ | 10944.79 | | 9848.44 | | 8009.90 | | 1000.99 | +----------+
Lưu ý:
DECIMAL(10,2): lưu chính xác, phù hợp tiền tệ, tài chính.FLOAT/DOUBLE: lưu gần đúng (approximate), dùng cho khoa học, đồ họa.- MySQL tự làm tròn (ROUND half up) khi chèn giá trị có nhiều chữ số thập phân hơn
scale. - Cảnh báo
Data truncatedkhi chèn 10944.7893 vào DECIMAL(10,2) vì phần nguyên đã 5 chữ số, phần thập phân 4 chữ số → tổng 9 > 10? Thực tế 10944.79 là 7 chữ số, OK. Cảnh báo do làm tròn.