Khi làm việc với giá cả, hóa đơn, doanh thu, hiển thị số ở dạng tiền tệ giúp giao diện dễ đọc và chuyên nghiệp hơn.
Trong JavaScript, có 2 hướng phổ biến:
- Tự code thủ công (dễ lỗi, mất công).
- Dùng
Intl.NumberFormat(ngắn gọn, chuẩn quốc tế).
1. Cách thủ công
Nhiều bạn hay viết hàm nhỏ để chèn dấu chấm . ngăn cách hàng nghìn:
function formatCurrencyManual(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
console.log(formatCurrencyManual(900000));
// 900.000
Nếu muốn thêm ký hiệu tiền, lại phải nối chuỗi:
console.log(formatCurrencyManual(900000) + " ₫");
// 900.000 ₫
Nhược điểm:
- Khó mở rộng cho nhiều loại tiền (USD, EUR, …).
- Phải tự xử lý dấu
,hoặc.tùy quốc gia. - Cần viết thêm code nếu muốn hiển thị số lẻ thập phân.
2. Cách hiện đại với Intl.NumberFormat
Chỉ cần vài dòng, kết quả chuẩn quốc tế:
const number = 900000;
const formatted = new Intl.NumberFormat("vi-VN", {
style: "currency",
currency: "VND"
}).format(number);
console.log(formatted);
// 900.000 ₫
Ưu điểm:
- Tự động chèn dấu phân cách đúng theo locale.
- Hỗ trợ nhiều loại tiền tệ (
USD,EUR,JPY, …). - Có thể điều chỉnh số thập phân, kiểu hiển thị.
- Được tối ưu sẵn trong JavaScript, không cần thêm thư viện.
3. So sánh nhanh
| Tiêu chí | Cách thủ công | Intl.NumberFormat |
|---|---|---|
| Viết code | Dài, dễ lỗi | Ngắn gọn, rõ ràng |
| Hỗ trợ đa tiền tệ | Không | Có |
| Locale (quốc gia) | Phải tự xử lý | Tích hợp sẵn |
| Tính linh hoạt | Hạn chế | Rất cao |
4. Khi nào dùng?
- Thủ công: chỉ khi bạn muốn học regex hoặc xử lý đơn giản, cố định (ví dụ chỉ hiển thị VND).
Intl.NumberFormat: gần như luôn nên dùng, đặc biệt với app thương mại điện tử, dashboard, hệ thống quốc tế.
Kết luận: Thay vì mất thời gian phát minh lại bánh xe, hãy tận dụng sức mạnh của Intl.NumberFormat để vừa tiết kiệm thời gian, vừa đảm bảo định dạng tiền tệ chính xác, linh hoạt cho từng vùng miền. Đây là bí quyết giúp bạn chuyên nghiệp hóa dự án của mình!
Related blogs

Quy trình tự động hóa đánh giá CV với Google Apps Script
Tìm hiểu cách sử dụng Google Apps Script để tự động hóa quy trình đánh giá CV, giúp tiết kiệm thời gian và nâng cao hiệu quả công việc.

Tìm Hiểu Về Alembic - Thư Viện Migration Cho Python
Hướng dẫn chi tiết về Alembic, thư viện migration mạnh mẽ cho Python, giúp quản lý và áp dụng các thay đổi trong cơ sở dữ liệu một cách dễ dàng.

Định dạng số thành tiền Việt Nam Đồng trong JavaScript
Hướng dẫn cách định dạng số thành tiền Việt Nam Đồng (VND) trong JavaScript một cách đơn giản và hiệu quả.