C#: Đọc Số Thành Chữ (tiếng Việt) [Code+Project+Video] - VN SEEDER
Có thể bạn quan tâm
VN SEEDER
Chắc chắn là có đủ....
Menu- Tin học - Lập trình
- Lập trình căn bản
- Lập trình đồ họa
- Cấu trúc dữ liệu & giải thuật
- C# và SQL Server
- Thủ thuật máy tính
- Kiến thức
- Có thể bạn chưa biết
- Làm thế nào
- Nuôi dạy con
- Sức khỏe
- Đọc
- Hạt giống tâm hồn
- Truyện cổ tích
- Truyện cười
- Truyện ngụ ngôn
- Tony buổi sáng
- Phật học
- Ebook
- English Ebook
- Vietnamese Ebook
Đọc số thành chữ (tiếng Việt) là một thuật toán không khó nên hầu hết những ai biết lập trình đều có thể tự viết được.100% các phần mềm quản lý có liên quan đến tiền bạc thì phải có thuật toán đọc số thành chữ (tiếng Việt) bên trong nó để khi xuất ra các hóa đơn, phiếu thu/chi, người dùng có thể thấy được số tiền bằng chữ.Bây giờ, mình chia sẻ cho các bạn 2 thuật toán code C# đổi số thành chữ. 1 đoạn code dài, 1 đoạn code ngắn để bạn có thể so sánh, đánh giá.Đoạn Code 1: public static class ReadNumber { private static int Cấp_Tỉ { get; set; } private static string t { get; set; } public static string ByWords(this decimal so) { string str = so.ToString("########################0"); string str1 = ""; try { if (str != "") { str1 = (!(so == new decimal(0)) ? ReadNumber.Đọc_Số(ReadNumber.Tạo_Mảng_Số(str)) : "không"); } } catch (Exception exception1) { try { str1 = ReadNumber.Đọc_Số(ReadNumber.Tạo_Mảng_Số(str)); } catch (Exception exception) { str1 = "Tò te tí te ,số máy quí khách vừa gọi không có thật, xin vui lòng gọi lại số khác :D"; } } return ReadNumber.Viethoa(str1); } private static string Chục(string chuc) { string str = ""; char chr = chuc[1]; int num = Convert.ToInt32(chr.ToString()); int num1 = Convert.ToInt32(chuc); if (num1 < 20) { if (num1 == 10) { str = "mười"; } else if (num1 == 11) { str = "mười một"; } else if (num1 != 15) { chr = chuc[1]; str = string.Concat("mười ", ReadNumber.Đơn_Vị(chr.ToString())); } else { str = "mười lăm"; } } else if (num == 1) { chr = chuc[0]; str = string.Concat(ReadNumber.Đơn_Vị(chr.ToString()), " mươi mốt"); } else if (num == 5) { chr = chuc[0]; str = string.Concat(ReadNumber.Đơn_Vị(chr.ToString()), " mươi lăm"); } else if (num != 0) { chr = chuc[0]; string str1 = ReadNumber.Đơn_Vị(chr.ToString()); chr = chuc[1]; str = string.Format("{0} mươi {1}", str1, ReadNumber.Đơn_Vị(chr.ToString())); } else { chr = chuc[0]; str = string.Concat(ReadNumber.Đơn_Vị(chr.ToString()), " mươi "); } if (chuc[0].ToString() == "0") { str = str.Replace(" mươi ", ""); str = str.Replace("mười ", ""); } return str; } private static string Đọc_Số(string[] arr) { string str = ""; string str1 = str; string str2 = str; string str3 = str; string str4 = str; string str5 = str; string str6 = str; string str7 = str; int length = (int)arr.Length; while (length > 0) { if ((ReadNumber.Cấp_Tỉ <= 0 ? false : length < (int)arr.Length)) { str3 = string.Concat(str3, " tỉ "); } string[] strArrays = arr[length - 1].Split(new char[] { ',' }); string str8 = ReadNumber.Trăm(strArrays[0].ToString()); switch ((int)strArrays.Length) { case 1: { str6 = string.Concat(str8, str3); break; } case 2: { str5 = string.Format("{0} nghìn {1}{2}", str8, ReadNumber.Trăm(strArrays[1].ToString()), str3); break; } case 3: { int num = Convert.ToInt32(strArrays[0]); str2 = str8; if (num <= 0) { str2 = str8; } else { str2 = (num >= 100 ? string.Concat(str2, " triệu ") : string.Concat(str2.Replace(" lẻ ", ""), " triệu ")); } str1 = ReadNumber.Trăm(strArrays[1]); if (Convert.ToInt32(strArrays[1]) > 0) { str1 = string.Concat(str1, " nghìn "); } str4 = string.Concat(str2, str1, ReadNumber.Trăm(strArrays[2]), str3); break; } } length--; str7 = string.Concat(str6, str5, str4, str7); string str9 = ""; str4 = str9; str5 = str9; str6 = str9; str1 = str9; str2 = str9; } ReadNumber.Cấp_Tỉ = 0; return str7; } private static string Đơn_Vị(string dv) { string str = ""; string str1 = dv; if (str1 != null) { switch (str1) { case "0": { str = ""; break; } case "1": { str = "một"; break; } case "2": { str = "hai"; break; } case "3": { str = "ba"; break; } case "4": { str = "bốn"; break; } case "5": { str = "năm"; break; } case "6": { str = "sáu"; break; } case "7": { str = "bảy"; break; } case "8": { str = "tám"; break; } case "9": { str = "chín"; break; } } } return str; } private static string[] Tạo_Mảng_Số(string nghin) { char chr; bool str; try { nghin = Convert.ToInt32(nghin).ToString(); } catch (Exception exception) { } int num = 0; int num1 = num; int num2 = num; int num3 = num; int num4 = num; int length = nghin.Length; num2 = (length % 3 != 0 ? length + length / 3 : length + length / 3 - 1); string[] strArrays = new string[num2]; num2--; while (length > 0) { if (num4 == 3) { num4 = 1; num3++; if (num3 != 3) { strArrays[num2 - num1] = ","; } else { num3 = 0; ReadNumber.Cấp_Tỉ = ReadNumber.Cấp_Tỉ + 1; strArrays[num2 - num1] = "_"; } num1++; chr = nghin[length - 1]; strArrays[num2 - num1] = chr.ToString(); } else { num4++; if (nghin[length - 1].ToString() == " ") { str = true; } else { chr = nghin[length - 1]; str = !(chr.ToString() != "\n"); } if (!str) { chr = nghin[length - 1]; strArrays[num2 - num1] = chr.ToString(); } } num1++; length--; } ReadNumber.t = string.Join("", strArrays); return string.Join("", strArrays).Split(new char[] { '\u005F' }); } private static string Trăm(string tram) { char chr; string str = ""; int num = Convert.ToInt32(tram); if (num == 0) { str = ""; } else if (tram.Length == 1) { str = ReadNumber.Đơn_Vị(tram); } else if (tram.Length == 2) { str = ReadNumber.Chục(tram); } else if (num % 100 == 0) { chr = tram[0]; str = string.Concat(ReadNumber.Đơn_Vị(chr.ToString()), " trăm"); } else if (num < 100) { str = string.Concat("lẻ ", ReadNumber.Chục(tram.Substring(1).ToString())); } else if (!(tram[1].ToString() != "0")) { chr = tram[0]; string str1 = ReadNumber.Đơn_Vị(chr.ToString()); chr = tram[2]; str = string.Format("{0} trăm lẻ {1}", str1, ReadNumber.Đơn_Vị(chr.ToString())); } else { chr = tram[0]; str = string.Format("{0} trăm {1}", ReadNumber.Đơn_Vị(chr.ToString()), ReadNumber.Chục(tram.Substring(1).ToString())); } return str; } private static string Viethoa(string str) { string str1; if (!str.IsNullOrEmpty()) { char[] charArray = str.ToCharArray(); charArray[0] = char.ToUpper(charArray[0]); str1 = new string(charArray); } else { str1 = str; } return str1; } }Đoạn Code 2: public class Number2Text { [DebuggerNonUserCode] public Number2Text() { } private static string getNum(string sSoTien) { string str; str = (sSoTien.Length < 3 ? Strings.Right(sSoTien, sSoTien.Length) : Strings.Right(sSoTien, 3)); return str; } public static string Num2Text(string sSoTien) { byte num = 0; string str; string str1; string[] strArrays = Strings.Split(sSoTien, ".", -1, CompareMethod.Binary); sSoTien = strArrays[0]; string[] strArrays1 = new string[] { "", "nghìn ", "triệu ", "tỷ ", "ngàn ", "triệu " }; string[] strArrays2 = strArrays1; string str2 = ""; while (!sSoTien.Equals("")) { if (sSoTien.Length != 0) { string num1 = Number2Text.getNum(sSoTien); sSoTien = Strings.Left(sSoTien, checked(sSoTien.Length - num1.Length)); str1 = Number2Text.setNum(num1); num1 = str1; if (!num1.Equals("")) { str1 = string.Concat(str1, strArrays2[num]); str2 = string.Concat(str1, str2); } num = checked((byte)(checked(num + 1))); } } str1 = Strings.UCase(Strings.Left(str2, 1)); try { str = string.Concat(str1, Strings.Right(str2, checked(Strings.Len(str2) - 1)), "đồng./."); } catch (Exception exception) { ProjectData.SetProjectError(exception); str = ""; ProjectData.ClearProjectError(); } return str; } private static string setNum(string sSoTien) { bool flag = false; bool flag1 = false; string str = ""; string str1 = sSoTien; string[] strArrays = new string[] { "không ", "một ", "hai ", "ba ", "bốn ", "năm ", "sáu ", "bảy ", "tám ", "chín " }; string[] strArrays1 = strArrays; if (sSoTien.Length == 3) { if (Conversions.ToDouble(Strings.Left(sSoTien, 1)) == 0 & Conversions.ToDouble(Strings.Left(Strings.Right(sSoTien, 2), 1)) == 0 & Conversions.ToDouble(Strings.Right(sSoTien, 1)) == 0) { str = string.Concat(strArrays1[Conversions.ToInteger(Strings.Left(sSoTien, 1))], "trăm "); } sSoTien = Strings.Right(sSoTien, 2); } if (sSoTien.Length == 2) { if (Conversions.ToDouble(Strings.Left(sSoTien, 1)) == 0) { if (Conversions.ToDouble(Strings.Right(sSoTien, 1)) != 0) { str = string.Concat(str, "lẻ "); } flag = true; } else if (Conversions.ToDouble(Strings.Left(sSoTien, 1)) != 1) { str = string.Concat(str, strArrays1[Conversions.ToInteger(Strings.Left(sSoTien, 1))], "mươi "); flag1 = true; } else { str = string.Concat(str, "mười "); } sSoTien = Strings.Right(sSoTien, 1); } if (Conversions.ToDouble(Strings.Right(sSoTien, 1)) != 0) { if (!(Conversions.ToDouble(Strings.Left(sSoTien, 1)) == 5 & !flag)) { str = (!(Conversions.ToDouble(Strings.Left(sSoTien, 1)) == 1 & !(!flag1 | flag) & Operators.CompareString(str, "", false) != 0) ? string.Concat(str, strArrays1[Conversions.ToInteger(Strings.Left(sSoTien, 1))], "") : string.Concat(str, "mốt ")); } else { str = (str1.Length != 1 ? string.Concat(str, "lăm ") : string.Concat(str, "năm ")); } } return str; } }Hướng dẫn sử dụng:Tải Project: Code: Download Pass: vhlong.blogspot.com
Bài liên quan
Bài liên quan
>Thể loại
Cổ tích Có thể bạn chưa biết Nuôi - Dạy con TonyBuổi Sáng-TnBS Sức khỏe Máy tính Lập trình căn bản Làm thế nào Ngẫm Cấu trúc dữ liệu và giải thuật Hạt giống tâm hồn C# và SQL Server Phật học Truyện ngụ ngôn Giáo dụcEbook Tiếng Anh
CSharp Facebook SEO WindowsBài xem nhiều
- Lập trình căn bản C: Tìm ước chung lớn nhất, bội chung nhỏ nhất của 2 số a, b
- Lập trình căn bản C: Rút gọn phân số
- Lập trình căn bản C: Xét trúng tuyển thi đại học
- Những lần xê dịch
- Lập trình căn bản C: In ra n số nguyên tố đầu tiên
- Chuyện tiền chuyện bạc (phần 2)
- Lập trình căn bản C: in tam giác số đối đỉnh
- Lập trình căn bản C: tìm số m lớn nhất sao cho tổng từ một đến m nhỏ hơn bằng n
- Làm Menu lựa chọn bằng mũi tên di chuyển lên xuống C/C++
- Đảo ngược số nguyên dương bằng cách sử dụng đệ quy (có trả về kết quả)
Từ khóa » đọc Số Thành Chữ C#
-
Code C# Chuyển Số Thành Chữ
-
[C#] Chương Trình đọc Số Thành Chữ
-
Ngôn Ngữ C# - Chuyển Số Thành Chữ
-
Hàm đọc Số Thành Chữ Trong C#
-
Hướng Dẫn | Chuyển Số Sang Chữ C# | Diễn đàn Tuổi Trẻ CNTT
-
Chuyển đổi Số Thành Chuỗi Trong C# | Tìm ở đây
-
Code Chuyển Tiền Số Sang Chữ Trên C# - Trang 3
-
Hàm đọc Số Bằng Chữ - C# - Dotnet Group
-
[C#] Giới Thiệu Thư Viện Humanizer đọc Số Thành Chữ Tiếng Việt, Tiếng ...
-
Code C#: Đọc Số Thành Chữ - YouTube
-
[C#] Chuyển Số Thành Chuỗi Trong C# - YouTube
-
Chuyển đổi Số Thành Chữ | Lập Trình C# | Khánh Jos - YouTube
-
Code C# Chuyển đổi Số Thành Chữ
-
Code đọc Số Sang Chữ Trong Lập Trình C# - TaiLieu.VN