Đang nạp dữ liệu ...
DANH MỤC
Thư viện mã nguồn
Chuyển đổi số thành chữ (dùng trong tiền tệ)
Ngày cập nhật: 12/10/2009 9:48:25 SA
Người cập nhật: thanhtungo@yahoo.com
Lượt xem: 9.334     Lượt tải: 262     Bình luận: 6

Đây là 1 class đơn giản có chức năng chuyển đổi số thành chữ (dùng trong tiền tệ)

using System;

namespace Company.BLL.Utils
{
    public class VNCurrency
    {
        public static string ToString(decimal number)
        {
            string s = number.ToString("#");
            string[] so = new string[] {"không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín"};
            string[] hang = new string[] {"", "nghìn", "triệu", "tỷ"};
            int i, j, donvi, chuc, tram;
            string str = " ";
            bool booAm = false;
            decimal decS = 0;
            //Tung addnew
            try
            {
                decS = Convert.ToDecimal(s.ToString());
            }
            catch
            {
            }
            if (decS < 0)
            {
                decS = -decS;
                s = decS.ToString();
                booAm = true;
            }
            i = s.Length;
            if (i == 0)
                str = so[0] + str;
            else
            {
                j = 0;
                while (i > 0)
                {
                    donvi = Convert.ToInt32(s.Substring(i - 1, 1));
                    i--;
                    if (i > 0)
                        chuc = Convert.ToInt32(s.Substring(i - 1, 1));
                    else
                        chuc = -1;
                    i--;
                    if (i > 0)
                        tram = Convert.ToInt32(s.Substring(i - 1, 1));
                    else
                        tram = -1;
                    i--;
                    if ((donvi > 0) || (chuc > 0) || (tram > 0) || (j == 3))
                        str = hang[j] + str;
                    j++;
                    if (j > 3) j = 1;
                    if ((donvi == 1) && (chuc > 1))
                        str = "một " + str;
                    else
                    {
                        if ((donvi == 5) && (chuc > 0))
                            str = "lăm " + str;
                        else if (donvi > 0)
                            str = so[donvi] + " " + str;
                    }
                    if (chuc < 0)
                        break;
                    else
                    {
                        if ((chuc == 0) && (donvi > 0)) str = "lẻ " + str;
                        if (chuc == 1) str = "mười " + str;
                        if (chuc > 1) str = so[chuc] + " mươi " + str;
                    }
                    if (tram < 0) break;
                    else
                    {
                        if ((tram > 0) || (chuc > 0) || (donvi > 0)) str = so[tram] + " trăm " + str;
                    }
                    str = " " + str;
                }
            }
            if (booAm) str = "Âm " + str;
            return str + "đồng chẵn";
        }

        public static string ToString(double number)
        {
            string s = number.ToString("#");
            string[] so = new string[] { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };
            string[] hang = new string[] { "", "nghìn", "triệu", "tỷ" };
            int i, j, donvi, chuc, tram;
            string str = " ";
            bool booAm = false;
            double decS = 0;
            //Tung addnew
            try
            {
                decS = Convert.ToDouble(s.ToString());
            }
            catch
            {
            }
            if (decS < 0)
            {
                decS = -decS;
                s = decS.ToString();
                booAm = true;
            }
            i = s.Length;
            if (i == 0)
                str = so[0] + str;
            else
            {
                j = 0;
                while (i > 0)
                {
                    donvi = Convert.ToInt32(s.Substring(i - 1, 1));
                    i--;
                    if (i > 0)
                        chuc = Convert.ToInt32(s.Substring(i - 1, 1));
                    else
                        chuc = -1;
                    i--;
                    if (i > 0)
                        tram = Convert.ToInt32(s.Substring(i - 1, 1));
                    else
                        tram = -1;
                    i--;
                    if ((donvi > 0) || (chuc > 0) || (tram > 0) || (j == 3))
                        str = hang[j] + str;
                    j++;
                    if (j > 3) j = 1;
                    if ((donvi == 1) && (chuc > 1))
                        str = "một " + str;
                    else
                    {
                        if ((donvi == 5) && (chuc > 0))
                            str = "lăm " + str;
                        else if (donvi > 0)
                            str = so[donvi] + " " + str;
                    }
                    if (chuc < 0)
                        break;
                    else
                    {
                        if ((chuc == 0) && (donvi > 0)) str = "lẻ " + str;
                        if (chuc == 1) str = "mười " + str;
                        if (chuc > 1) str = so[chuc] + " mươi " + str;
                    }
                    if (tram < 0) break;
                    else
                    {
                        if ((tram > 0) || (chuc > 0) || (donvi > 0)) str = so[tram] + " trăm " + str;
                    }
                    str = " " + str;
                }
            }
            if (booAm) str = "Âm " + str;
            return str + "đồng chẵn";
        }
    }
}



 

Ghi chú: Bạn phải trước khi download.


Ý kiến bạn đọc:

Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: abc@def.com , lúc: 13/04/2012 4:21:03 CH
a


Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: quehvi@hotmail.com , lúc: 28/05/2011 8:24:24 CH
Bài này cũng hay nhưng anh nào code thì nên cho comment đi chứ , phong cách làm việc nên chuyên nghiệp chút chứ cho người xem dễ hiểu chứ hjhj


Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: cuongmedia@gmail.com , lúc: 18/10/2010 8:51:59 SA
Ban copy code cua toi ma khong de lai ten tac gia sao?


Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: canyounet@gmail.com , lúc: 16/10/2010 5:29:25 CH
rat hay va huu ich , tui da test


Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: tuuvasac@yahoo.com , lúc: 08/06/2010 10:21:06 CH
xem làm quái gì! copy & run


Trả lời: Chuyển đổi số thành chữ (dùng trong tiền tệ)
bởi: thanhtungo@yahoo.com , lúc: 10/05/2010 12:28:24 SA
Code để kiểu này hơi khó xem




Ý kiến của bạn

Tiêu đề:
  
Email (bắt buộc):
  
Nội dung phản hồi:

  
Mã xác nhận: Gửi phản hồi
Copyright © by ASP.NET VIETNAM
Contact us: ngothanhtung.it@gmail.com