Hàm chuyển đổi giá tiền định dạng VNĐ bằng Java
Dưới đây là hàm Java để chuyển đổi số thành chuỗi định dạng tiền tệ Việt Nam (VNĐ), có phân cách hàng nghìn và thêm hậu tố “₫” hoặc “VNĐ” ở cuối:
✅ Cách 1: Sử dụng NumberFormat (đơn giản, có phân cách hàng nghìn)#
` import java.text.NumberFormat; import java.util.Locale;
public class VnCurrencyFormatter { public static String formatVND(long amount) { NumberFormat formatter = NumberFormat.getInstance(new Locale("vi", "VN")); return formatter.format(amount) + " ₫"; // hoặc dùng " VNĐ" }
public static void main(String[] args) {
long price = 123456789;
String formattedPrice = formatVND(price);
System.out.println(formattedPrice); // Kết quả: 123.456.789 ₫
}
} `
✅ Cách 2: Nếu muốn kết hợp cả kiểu BigDecimal (ví dụ khi làm việc với tiền tệ trong database)#
` import java.math.BigDecimal; import java.text.NumberFormat; import java.util.Locale;
public class VnCurrencyFormatter { public static String formatVND(BigDecimal amount) { NumberFormat formatter = NumberFormat.getInstance(new Locale("vi", "VN")); return formatter.format(amount) + " ₫"; }
public static void main(String[] args) {
BigDecimal price = new BigDecimal("987654321.75");
System.out.println(formatVND(price)); // Kết quả: 987.654.321,75 ₫
}
} `
✅ Mẹo thêm: Nếu muốn hiển thị dạng chữ (ví dụ: "Một triệu đồng")#
Dưới đây là hàm chuyển đổi số thành chữ tiếng Việt cho đơn vị tiền tệ VNĐ trong Java (ví dụ: 1234567 ➝ "Một triệu hai trăm ba mươi tư nghìn năm trăm sáu mươi bảy đồng").
✅ Hàm Java chuyển số thành chữ (dùng cho tiền VNĐ)#
` public class NumberToVietnameseWords {
private static final String[] DON_VI = {
"", "nghìn", "triệu", "tỷ", "nghìn tỷ", "triệu tỷ", "tỷ tỷ"
};
private static final String[] SO = {
"không", "một", "hai", "ba", "bốn",
"năm", "sáu", "bảy", "tám", "chín"
};
public static String convert(long number) {
if (number == 0) return "Không đồng";
String result = "";
int i = 0;
while (number > 0) {
int block = (int)(number % 1000);
if (block != 0) {
String blockText = readBlock(block);
result = blockText + " " + DON_VI[i] + " " + result;
}
number /= 1000;
i++;
}
result = result.trim();
result = Character.toUpperCase(result.charAt(0)) + result.substring(1);
return result + " đồng";
}
private static String readBlock(int number) {
int tram = number / 100;
int chuc = (number % 100) / 10;
int donVi = number % 10;
StringBuilder sb = new StringBuilder();
if (tram > 0) {
sb.append(SO[tram]).append(" trăm");
if (chuc == 0 && donVi != 0) {
sb.append(" linh");
}
}
if (chuc > 0) {
if (chuc == 1) {
sb.append(" mười");
} else {
sb.append(" ").append(SO[chuc]).append(" mươi");
}
if (donVi == 1) {
sb.append(" mốt");
} else if (donVi == 5) {
sb.append(" lăm");
} else if (donVi != 0) {
sb.append(" ").append(SO[donVi]);
}
} else if (donVi != 0) {
sb.append(" ").append(SO[donVi]);
}
return sb.toString().trim();
}
// Test thử
public static void main(String[] args) {
long[] tests = {0, 15, 105, 1115, 1234567, 1000000000L};
for (long test : tests) {
System.out.println(test + " => " + convert(test));
}
}
} `
✅ Kết quả ví dụ:#
0 => Không đồng 15 => Mười lăm đồng 105 => Một trăm linh năm đồng 1115 => Một nghìn một trăm mười lăm đồng 1234567 => Một triệu hai trăm ba mươi tư nghìn năm trăm sáu mươi bảy đồng 1000000000 => Một tỷ đồng
1 phản hồi
Bài liên quan trong #Java
-
Mẹo dùng claude code desktop với dự án lớn
minhdev -
Hướng dẫn cài docker trên ubuntu 24
minhdev -
Hướng dẫn đầy đủ về cách cài và dùng Claude trên PC, kèm các mẹo hay!
minhdev · 💬 1 -
Cách xây dựng API cho CMS bằng Java từ A-Z
minhdev · 💬 1 -
Dể xây dựng phần mềm quản lý tài sản cho 1 doanh nghiệp ta cần làm gì
minhdev