01/10/2018, 14:25

Share Code đọc số thành chữ, - số lớn bao nhiêu cũng cân tất

Chia sẻ anh em code c# đọc số.
#Những giờ rảnh rỗi trên công ty

  public string ToText(string str)
            {
                string[] word = { "", " một", " hai", " ba", " bốn", " năm", " sáu", " bẩy", " tám", " chín" };
                string[] million = { "", " mươi", " trăm", "" };
                string[] billion = { "", "", "", " nghìn", "", "", " triệu", "", "" };
                string result = "{0}";
                int count = 0;
                for (int i = str.Length - 1; i >= 0; i--)
                {
                    if (count > 0 && count % 9 == 0)
                        result = string.Format(result, "{0} tỷ");
                    if(!(count < str.Length - 3&&count>2 && str[i].Equals('0')&& str[i - 1].Equals('0')&& str[i - 2].Equals('0')))
                    result = string.Format(result, "{0}"+ billion[count%9]);
                    if (!str[i].Equals('0'))
                        result = string.Format(result, "{0}" + million[count%3]);
                    else if(count%3 ==1 && count >1 && !str[i-1].Equals('0') && !str[i + 1].Equals('0'))
                        result = string.Format(result, "{0} lẻ");
                    var num = Convert.ToInt16(str[i].ToString());
                    result = string.Format(result, "{0}" + word[num]);
                    count++;
                }
                result = result.Replace("{0}", "");
                return result.Trim();
            }
Bài liên quan
0