Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Định dạng số thập phân để lưu trong MySQL

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 truncated khi 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.