private string MoneyToString(decimal Amount) { string Resp, Tien, DOC, Dem, Nhom, Chu, So1, So2, So3, Dich; int S; if (Amount == 0) { Resp = "Không đồng"; } else { if (Amount > 999999999999) { Resp = "Số quá lớn"; } else { if (Amount < 0) { Resp = "Trừ"; } else { Resp = string.Empty; } Tien = string.Format("{0:###########0.00}", decimal.Parse(Amount.ToString())); Tien = (Tien.PadLeft(15)); DOC = Dem = string.Empty; DOC = DOC + "trăm mươi tỷ "; DOC = DOC + "trăm mươi triệu "; DOC = DOC + "trăm mươi ngàn "; DOC = DOC + "trăm mươi đồng "; DOC = DOC + "trăm mươi xu "; Dem = Dem + "một hai ba bốn năm "; Dem = Dem + "sáu bảy tám chín"; for (int i = 1; i < 6; i++) { Nhom = Tien.Substring(i * 3 - 3, 3); if (Nhom != "".PadRight(3)) { switch (Nhom) { case "000": Chu = (i == 4 ? "đồng " : ""); break; case ".00": Chu = "chẵn"; break; default: So1 = Nhom.Substring(0, 1); So2 = Nhom.Substring(1, 1); So3 = Nhom.Substring(Nhom.Length > 1 ? Nhom.Length - 1 : 0, 1); Chu = ""; for (int j = 1; j < 4; j++) { Dich = ""; if (int.TryParse(Nhom.Substring(j - 1, 1), out S) == false) { S = -1; } if (S > 0) { Dich = Dem.Substring(S * 5 - 5, 4).Trim() + " "; Dich += DOC.Substring((i - 1) * 18 + j * 6 - 5 - 1, 5) + " "; } switch (j) { case 2: if (S == 1) { Dich = "mười "; } else if (S == 0 && So3 != "0") { if ((int.Parse(So1) >= 1 && int.Parse(So1) <= 9) || (So1 == "0" && i == 4)) { Dich = "lẻ "; } } break; case 3: if (S == 0 && Nhom != "".PadRight(2) + "0") { Dich = DOC.Substring((i - 1) * 18 + j * 6 - 5 - 1, 5).Trim() + "".PadRight(1); } else if (S == 5 && So2 != "".PadRight(1) && So2 != "0") { Dich = "l" + Dich.Substring(1); } break; default: break; } Chu += Dich; } break; } Chu = Chu.Replace(" ", " "); Resp += Chu.Replace("mươi một", "mươi mốt"); } } } } return(Resp.Substring(0, 1).ToUpper() + Resp.Substring(1) + "./."); }
public static string txtVND(Decimal BaoNhieu) { string KetQua = "", SoTien, Nhom, Chu, Dich, S1, S2, S3; int S; int I, J, Vitri; if (BaoNhieu == 0) { KetQua = "Không đồng"; } else { SoTien = Math.Abs(BaoNhieu).ToString("##############0.00"); SoTien = " " + SoTien; SoTien = SoTien.Substring(SoTien.Length - 18, 18); string[] Hang; Hang = new string[] { "None", "trăm", "mươi", "gì đó" }; string[] Doc; Doc = new string[] { "None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng" }; string[] Dem; Dem = new string[] { "None", "một", "hai", "ba", "bốn", "năm", "sáu", "bẩy", "tám", "chín" }; for (I = 1; I <= 5; I++) { Nhom = SoTien.Substring(I * 3 - 3, 3); if (Nhom != " ") { switch (Nhom) { case "000": { if (I == 5) { Chu = "đồng" + " "; } else { Chu = ""; } break; } case ".00": { Chu = "chẵn"; break; } default: { S1 = Nhom.Substring(0, 1); S2 = Nhom.Substring(1, 1); S3 = Nhom.Substring(Nhom.Length - 1, 1); Chu = ""; Hang[3] = Doc[I]; for (J = 1; J <= 3; J++) { Dich = ""; try { S = Convert.ToInt32(Nhom.Substring(J - 1, 1)); if (S > 0) { Dich = Dem[S] + " " + Hang[J] + " "; } switch (J) { case 2: { if (S == 1) { Dich = "mười" + " "; } if ((S == 0) && (S3 != "0")) { if ((Convert.ToInt32(S1) >= 1 && Convert.ToInt32(S1) <= 9) || (S1 == "0" && I == 4)) { Dich = "lẻ" + " "; } } break; } case 3: { if ((S == 0) && (Nhom != " " + "0")) { Dich = Hang[J] + " "; } if ((S == 5) && (S2 != "") && (S2 != "0")) { Dich = "l" + Dich.Substring(1); } break; } } Chu = Chu + Dich; } catch (Exception) { } } break; } } //Vitri = Chu.IndexOf("mươi một", 1); KetQua = KetQua + Chu; string d = KetQua[0].ToString().ToUpper(); string d1 = KetQua.Remove(0, 1); string k = d1.Insert(0, d); KetQua = k; } } } return(KetQua); }