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

Kiểu dữ liệu tốt nhất cho tiền tệ trong MySQL: DECIMAL

DECIMAL là lựa chọn chuẩn cho tiền tệ vì lưu trữ chính xác (fixed-point), không sai số làm tròn như FLOAT/DOUBLE.

Cú pháp

DECIMAL(tong_so_chu_so, so_chu_so_sau_dau_cham)

Ví dụ: DECIMAL(10,2) lưu được đến 99,999,999.99 (10 chữ số, 2 sau dấu phẩy).

Ví dụ minh họa

Tạo bảng CurrenciesDemo:

CREATE TABLE CurrenciesDemo (TotalPrice DECIMAL(10,2));

INSERT INTO CurrenciesDemo VALUES 
(1647575.67), (1647575), (99599596), (1986.50), (99999999.90);

Kết quả:

+-------------+
| TotalPrice  |
+-------------+
| 1647575.67  |
| 1647575.00  |
| 99599596.00 |
| 1986.50     |
| 99999999.90 |
+-------------+

Hiển thị với ký hiệu tiền tệ

SELECT CONCAT('$', TotalPrice) AS DollerSign FROM CurrenciesDemo;
+--------------+
| DollerSign   |
+--------------+
| $1647575.67  |
| $1647575.00  |
| $99599596.00 |
| $1986.50     |
| $99999999.90 |
+--------------+

Lưu ý quan trọng:

  • Không dùng FLOAT/DOUBLE cho tiền (lỗi làm tròn nhị phân).
  • Chọn TONG_SO_CHU_SO đủ lớn cho giá trị tối đa dự kiến.
  • MySQL 8.0+: Có thể dùng DECIMAL(19,4) cho độ chính xác cao (tiên tệ crypto, tỷ giá).
  • Lưu giá trị nguyên (cents) trong BIGINT cũng là một pattern phổ biến (tránh hoàn toàn dấu phẩy).