Trang 3 trên tổng số 3 Đầu tiênĐầu tiên 123
Từ 21 tới 28 trên tổng số 28 kết quả

Đề tài: Code chuyển tiền số sang chữ trên C#

  1. #21
    Ngày gia nhập
    06 2009
    Bài viết
    11

    Mặc định Crytal

    Trích dẫn Nguyên bản được gửi bởi ndnhan Xem bài viết
    Bạn ơi cho mình hỏi làm thế nào để hiện thị trong CrystalReportViwer ở dạng từ số đổi thành chữ vậy, mình mới học C#, mong các bạn giúp đở chỉ chi tiết mình với, cảm ơn nhiều lắm.
    Cái này cũng đơn giản,có bảng dữ liệu đổ vào report.Trong code C# tính tổng tiền rồi chuyển số sang chứ xong truyền tham số tiền bằng chữ đó vào Report

  2. #22
    Ngày gia nhập
    07 2012
    Bài viết
    1

    Mặc định Thuật toán của mình khác của các bạn đôi chút.

    Híc... chả biết nói thế nào nữa, post giải thuật của mình lên đây mọi người cùng tham khảo nhé:
    Code:
    public static class Number2Letter
        {
            public static string Convert(float _number)
            {
                if (_number == 0)
                    return "Không đồng.";
    
                string _source = String.Format("{0:0,0}", _number);
    
                string[] _arrsource = _source.Split(',');
    
                string _letter = "";
    
                int _numunit = _arrsource.Length;
                foreach (string _str in _arrsource)
                {
                    if(ThreeNumber2Letter(_str).Length !=0)
                        _letter += String.Format("{0} {1} ", ThreeNumber2Letter(_str), NumUnit(_numunit));
                    _numunit--;
                }
                
                if (_letter.StartsWith("không trăm"))
                    _letter = _letter.Substring(11, _letter.Length - 12);
                if (_letter.StartsWith("lẻ"))
                    _letter = _letter.Substring(3, _letter.Length - 3);
    
                return String.Format("{0}{1} đồng.",_letter.Substring(0,1).ToUpper(),_letter.Substring(1,_letter.Length-1).Trim());
            }
    
            private static string ThreeNumber2Letter(string _number)
            {
                int _hunit = 0, _tunit = 0, _nunit = 0;
                if (_number.Length == 3)
                {
                    _hunit = int.Parse(_number.Substring(0, 1));
                    _tunit = int.Parse(_number.Substring(1, 1));
                    _nunit = int.Parse(_number.Substring(2, 1));
                }
                else if (_number.Length == 2)
                {
                    _tunit = int.Parse(_number.Substring(0, 1));
                    _nunit = int.Parse(_number.Substring(1, 1));
                }
                else if (_number.Length == 1)
                    _nunit = int.Parse(_number.Substring(0, 1));
    
                if (_hunit == 0 && _tunit == 0 && _nunit == 0)
                    return "";
    
                switch (_tunit)
                {
                    case 0:
                        if (_nunit == 0)
                            return String.Format("{0} trăm", OneNumber2Letter(_hunit));
                        else
                            return String.Format("{0} trăm lẻ {1}", OneNumber2Letter(_hunit), OneNumber2Letter(_nunit));
                    case 1:
                        if (_nunit == 0)
                            return String.Format("{0} trăm mười", OneNumber2Letter(_hunit));
                        else
                            return String.Format("{0} trăm mười {1}", OneNumber2Letter(_hunit), OneNumber2Letter(_nunit));
                    default:
                        if (_nunit == 0)
                            return String.Format("{0} trăm {1} mươi", OneNumber2Letter(_hunit), OneNumber2Letter(_tunit));
                        else if (_nunit == 1)
                            return String.Format("{0} trăm {1} mươi mốt", OneNumber2Letter(_hunit), OneNumber2Letter(_tunit));
                        else if (_nunit == 4)
                            return String.Format("{0} trăm {1} mươi tư", OneNumber2Letter(_hunit), OneNumber2Letter(_tunit));
                        else
                            return String.Format("{0} trăm {1} mươi {2}", OneNumber2Letter(_hunit), OneNumber2Letter(_tunit), OneNumber2Letter(_nunit));
                }
            }
    
            private static string NumUnit(int _unit)
            {
                switch (_unit)
                {
                    case 0:
                    case 1:
                        return ""; 
                    case 2:
                        return "nghìn";
                    case 3:
                        return "triệu";
                    case 4:
                        return "tỷ";
                    default:
                        return String.Format("{0} {1}", NumUnit(_unit - 3), NumUnit(4)); 
                }
            }
    
            private static string OneNumber2Letter(int _number)
            {
                switch (_number)
                {
                    case 0:
                        return "không";
                    case 1:
                        return "một";
                    case 2:
                        return "hai";
                    case 3:
                        return "ba";
                    case 4:
                        return "bốn";
                    case 5:
                        return "lăm";
                    case 6:
                        return "sáu";
                    case 7: 
                        return "bảy";
                    case 8:
                        return "tám";
                    case 9:
                        return "chín";
                    default:
                        return "";
                }
            }
        }
    Lý giải một chút:

    Hàm đầu tiên và cũng là hàm gọi để dùng là hàm: Convert.
    Hàm này nhận chuỗi số vào là float (rất lớn).
    Sau đó sẽ convert sang định dạng chuỗi với dấu ',' phân cách ở 3 số (định dạng tiền tệ).
    Sau khi phân cách 3 số bằng dấu ',' thì sẽ cắt ra thành từng chuỗi 3 số một và đẩy vào một mảng.
    => Chiều dài của mảng là đơn vị của chuỗi số.

    Khi có được các chuỗi 3 số rồi thì gọi hàm thứ 2: ThreeNumber2Letter.
    Hàm này có nhiệm vụ chuyển 3 số hàng trăm, chục, đơn vị ra thành kiểu chữ rồi ghép với đơn vị thực của chuỗi số, tức là gọi hàm: NumUnit.

    Hàm NumUnit được sử dụng đệ quy.
    Nếu thoải mãn độ dài là 2,3,4: tương ứng với nghìn, triệu, tỷ.
    Không thỏa mãn nhỏ hơn thì trả về chuỗi rỗng.
    Không thỏa mãn lớn hơn thì trả về hàm NumUnit(4) + NumUnit(_unit - 3);
    Tức là nó sẽ tự đệ quy nhiều lần lên nếu _unit > 4 (lớn hơn tỷ).

    Hàm cuối cùng là hàm OneNumber2Letter thì quá đơn giản rồi, không phải giải thích nữa nhỉ?
    Đã được chỉnh sửa lần cuối bởi vungtroixa : 26-07-2012 lúc 04:22 AM.

  3. #23
    Ngày gia nhập
    07 2012
    Bài viết
    32

    Trích dẫn Nguyên bản được gửi bởi puss Xem bài viết
    Xin mạo muội post 1 đoạn code đọc số hồi xưa mình viết.
    Hồi xưa viết = java, chuyển code qua C# chắc cũng sai sót vài chỗ, mong mọi người chỉ giáo.

    Visual C# Code:
    1. private string ChuyenSo(string number)
    2. {
    3.     string[] dv = { "", "mươi", "trăm", "nghìn", "triệu", "tỉ"};
    4.     string[] cs = { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };
    5.     string doc;
    6.     int i, j, k, n, len, found, ddv, rd;
    7.  
    8.     len = number.Length;
    9.     number += "ss";
    10.     doc = "";
    11.     found=0;
    12.     ddv=0;
    13.     rd=0;
    14.  
    15.     i = 0;
    16.     while (i < len)
    17.     {
    18.         //So chu so o hang dang duyet
    19.         n = (len - i + 2) % 3 + 1;
    20.  
    21.         //Kiem tra so 0
    22.         found = 0;
    23.         for (j = 0; j < n; j++)
    24.         {
    25.             if (number[i + j] != '0')
    26.             {
    27.                 found = 1;
    28.                 break;
    29.             }
    30.         }
    31.  
    32.         //Duyet n chu so
    33.         if (found == 1)
    34.         {
    35.             rd = 1;
    36.             for (j = 0; j < n; j++)
    37.             {
    38.                 ddv=1;
    39.                 switch(number[i+j])
    40.                 {
    41.                     case '0':
    42.                         if (n-j==3) doc+=cs[0]+" ";
    43.                         if (n-j==2)
    44.                         {
    45.                             if (number[i+j+1]!='0') doc+="lẻ ";
    46.                             ddv=0;
    47.                         }
    48.                         break;
    49.                     case '1':
    50.                         if (n-j==3) doc+=cs[1] + " ";
    51.                         if (n-j==2)
    52.                         {
    53.                             doc+="mười ";
    54.                             ddv=0;
    55.                         }
    56.                         if (n-j==1)
    57.                         {
    58.                             if (i + j == 0) k = 0;
    59.                             else k = i + j - 1;
    60.  
    61.                             if (number[k]!='1' && number[k]!='0')
    62.                                 doc += "mốt ";
    63.                             else
    64.                                 doc+=cs[1]+" ";
    65.                         }
    66.                         break;
    67.                     case '5':
    68.                         if (i+j==len-1)
    69.                             doc+="lăm ";
    70.                         else
    71.                             doc+=cs[5]+" ";
    72.                         break;
    73.                     default:
    74.                         doc+=cs[(int)number[i+j]-48]+" ";
    75.                         break;
    76.                 }
    77.  
    78.                  //Doc don vi nho
    79.                 if (ddv==1)
    80.                 {
    81.                     doc+=dv[n-j-1]+" ";
    82.                 }
    83.             }
    84.         }
    85.        
    86.  
    87.         //Doc don vi lon
    88.         if (len-i-n>0)
    89.         {
    90.             if ((len - i - n ) % 9 == 0)
    91.             {
    92.                 if (rd==1)
    93.                     for (k = 0; k < (len - i - n) / 9; k++)
    94.                         doc += "tỉ ";
    95.                 rd=0;
    96.             }
    97.             else
    98.                 if (found!=0) doc+=dv[((len-i-n+1)%9)/3+2]+" ";
    99.         }
    100.  
    101.         i+=n;
    102.     }
    103.  
    104.     if (len == 1)
    105.         if (number[0] == '0' || number[0] == '5') return cs[(int)number[0] - 48];
    106.  
    107.     return doc;
    108. }

    Chỉ cần copy hàm này vào, sau đó khi nào muốn dùng thì chỉ việc gọi hàm ChuyenSo(number);
    Tham số truyền vào là 1 string chứa các con số, rất tiện lợi với việc đọc những con số hàng trăm chữ số.
    Cảm ơn bạn Puss, đoạn code của bạn rất hay (mặc dù mình ko hiểu lắm). Mình có bổ sung thêm cho phép đọc các số có phần thập phân (chứa dấu phẩy), và một số chỗ nhỏ khác cho chính xác hơn, post lên để chia sẻ với mọi người:

    Code:
    public static string ChuyenSo(string number)
            {
                string[] strTachPhanSauDauPhay;
                if (number.Contains('.') || number.Contains(','))
                {
                    strTachPhanSauDauPhay = number.Split(',', '.');
                    return(ChuyenSo(strTachPhanSauDauPhay[0]) + "phẩy " + ChuyenSo(strTachPhanSauDauPhay[1]));
                }
                
                string[] dv = { "", "mươi", "trăm", "nghìn", "triệu", "tỉ" };
                string[] cs = { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };
                string doc;
                int i, j, k, n, len, found, ddv, rd;
    
                len = number.Length;
                number += "ss";
                doc = "";
                found = 0;
                ddv = 0;
                rd = 0;
    
                i = 0;
                while (i < len)
                {
                    //So chu so o hang dang duyet
                    n = (len - i + 2) % 3 + 1;
    
                    //Kiem tra so 0
                    found = 0;
                    for (j = 0; j < n; j++)
                    {
                        if (number[i + j] != '0')
                        {
                            found = 1;
                            break;
                        }
                    }
    
                    //Duyet n chu so
                    if (found == 1)
                    {
                        rd = 1;
                        for (j = 0; j < n; j++)
                        {
                            ddv = 1;
                            switch (number[i + j])
                            {
                                case '0':
                                    if (n - j == 3) doc += cs[0] + " ";
                                    if (n - j == 2)
                                    {
                                        if (number[i + j + 1] != '0') doc += "linh ";
                                        ddv = 0;
                                    }
                                    break;
                                case '1':
                                    if (n - j == 3) doc += cs[1] + " ";
                                    if (n - j == 2)
                                    {
                                        doc += "mười ";
                                        ddv = 0;
                                    }
                                    if (n - j == 1)
                                    {
                                        if (i + j == 0) k = 0;
                                        else k = i + j - 1;
    
                                        if (number[k] != '1' && number[k] != '0')
                                            doc += "mốt ";
                                        else
                                            doc += cs[1] + " ";
                                    }
                                    break;
                                case '5':
                                    if ((i + j == len - 1) ||(i + j + 3 == len -1))
                                        doc += "lăm ";
                                    else
                                        doc += cs[5] + " ";
                                    break;
                                default:
                                    doc += cs[(int)number[i + j] - 48] + " ";
                                    break;
                            }
    
                            //Doc don vi nho
                            if (ddv == 1)
                            {
                                doc += ((n - j) != 1) ? dv[n - j - 1] + " " : dv[n - j - 1];
                            }
                        }
                    }
    
    
                    //Doc don vi lon
                    if (len - i - n > 0)
                    {
                        if ((len - i - n) % 9 == 0)
                        {
                            if (rd == 1)
                                for (k = 0; k < (len - i - n) / 9; k++)
                                    doc += "tỉ ";
                            rd = 0;
                        }
                        else
                            if (found != 0) doc += dv[((len - i - n + 1) % 9) / 3 + 2] + " ";
                    }
    
                    i += n;
                }
    
                if (len == 1)
                    if (number[0] == '0' || number[0] == '5') return cs[(int)number[0] - 48];
    
                return doc;
            }

  4. #24
    Ngày gia nhập
    06 2009
    Bài viết
    54

    Code:
    using System;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Windows.Forms;
    
    namespace ComvertNumber
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                richTextBox1.Text = PhanCach("9999999999999999999.812");
            }
    
            private static string PhanCach(string number)
            {
                var sb = "";
                var split = number.Trim().Split('.').ToList();
                for (var i = 0; i < split.Count; i++)
                {
                    if (i > 0)
                        sb += " lẻ ";
                    sb += ChuyenSo(split[i]);
                }
                sb += " đồng";
    
                return Regex.Replace(sb.Substring(0, 1).ToUpper() + sb.Substring(1).ToLower(), @"\s+", " ");
            }
    
            private static string ChuyenSo(string number)
            {
                string[] dv = { "", "mươi", "trăm", "nghìn", "triệu", "tỉ" };
                string[] cs = { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };
    
                var length = number.Length;
                number += "ss";
                var doc = new StringBuilder();
                var rd = 0;
    
                var i = 0;
                while (i < length)
                {
                    //So chu so o hang dang duyet
                    var n = (length - i + 2) % 3 + 1;
    
                    //Kiem tra so 0
                    var found = 0;
                    int j;
                    for (j = 0; j < n; j++)
                    {
                        if (number[i + j] == '0') continue;
                        found = 1;
                        break;
                    }
    
                    //Duyet n chu so
                    int k;
                    if (found == 1)
                    {
                        rd = 1;
                        for (j = 0; j < n; j++)
                        {
                            var ddv = 1;
                            switch (number[i + j])
                            {
                                case '0':
                                    if (n - j == 3)
                                        doc.Append(cs[0]);
                                    if (n - j == 2)
                                    {
                                        if (number[i + j + 1] != '0')
                                            doc.Append("lẻ");
                                        ddv = 0;
                                    }
                                    break;
                                case '1':
                                    switch (n - j)
                                    {
                                        case 3:
                                            doc.Append(cs[1]);
                                            break;
                                        case 2:
                                            doc.Append("mười");
                                            ddv = 0;
                                            break;
                                        case 1: k = (i + j == 0) ? 0 : i + j - 1;
                                            doc.Append((number[k] != '1' && number[k] != '0') ? "mốt" : cs[1]);
                                            break;
                                    }
                                    break;
                                case '5':
                                    doc.Append((i + j == length - 1) ? "lăm" : cs[5]);
                                    break;
                                default:
                                    doc.Append(cs[number[i + j] - 48]);
                                    break;
                            }
    
                            doc.Append(" ");
    
                            //Doc don vi nho
                            if (ddv == 1)
                                doc.Append(dv[n - j - 1] + " ");
                        }
                    }
    
    
                    //Doc don vi lon
                    if (length - i - n > 0)
                    {
                        if ((length - i - n) % 9 == 0)
                        {
                            if (rd == 1)
                                for (k = 0; k < (length - i - n) / 9; k++)
                                    doc.Append("tỉ ");
                            rd = 0;
                        }
                        else
                            if (found != 0) doc.Append(dv[((length - i - n + 1) % 9) / 3 + 2] + " ");
                    }
    
                    i += n;
                }
    
                return (length == 1) && (number[0] == '0' || number[0] == '5') ? cs[number[0] - 48] : doc.ToString();
            }
        }
    }
    Đã được chỉnh sửa lần cuối bởi astrologic : 11-07-2013 lúc 11:45 AM.

  5. #25
    Ngày gia nhập
    10 2011
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi puss Xem bài viết
    Mình đã test thử chương trình bạn viết và chạy rất tốt.
    Tuy nhiên gặp phải một vấn đề nhỏ như sau:
    Ví dụ như trường hợp sau:
    +Bill gate có gia tài khoảng hơn 50 tỉ $.
    +Với mệnh giá quy đổi làm tròn là 1$=20.000 vnd
    +Vậy 50 tỉ $ sẽ quy ra 50*20.000=1 triệu tỉ vnd
    Chương trình của bạn sẽ báo lỗi vì 1 triệu tỉ vượt quá khả năng lưu trữ của kiểu double.

    Nếu bạn có thể sửa lại lưu kiểu string thay cho double thì sẽ tốt hơn.
    Chúc bạn gặp nhiều may mắn.
    Theo mình biết thì
    1triệu tỉ = 1.0E+15
    double.MaxValue ~ 1.79E+308
    Vậy nếu dùng double có khả năng xãy ra lỗi ko nhỉ :-?

  6. #26
    Ngày gia nhập
    10 2011
    Bài viết
    2

    Post Code chuyển tiền số sang chữ trên C#

    Trích dẫn Nguyên bản được gửi bởi puss Xem bài viết
    Xin mạo muội post 1 đoạn code đọc số hồi xưa mình viết.
    Hồi xưa viết = java, chuyển code qua C# chắc cũng sai sót vài chỗ, mong mọi người chỉ giáo.

    Visual C# Code:
    1. private string ChuyenSo(string number)
    2. {
    3.     string[] dv = { "", "mươi", "trăm", "nghìn", "triệu", "tỉ"};
    4.     string[] cs = { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };
    5.     string doc;
    6.     int i, j, k, n, len, found, ddv, rd;
    7.  
    8.     len = number.Length;
    9.     number += "ss";
    10.     doc = "";
    11.     found=0;
    12.     ddv=0;
    13.     rd=0;
    14.  
    15.     i = 0;
    16.     while (i < len)
    17.     {
    18.         //So chu so o hang dang duyet
    19.         n = (len - i + 2) % 3 + 1;
    20.  
    21.         //Kiem tra so 0
    22.         found = 0;
    23.         for (j = 0; j < n; j++)
    24.         {
    25.             if (number[i + j] != '0')
    26.             {
    27.                 found = 1;
    28.                 break;
    29.             }
    30.         }
    31.  
    32.         //Duyet n chu so
    33.         if (found == 1)
    34.         {
    35.             rd = 1;
    36.             for (j = 0; j < n; j++)
    37.             {
    38.                 ddv=1;
    39.                 switch(number[i+j])
    40.                 {
    41.                     case '0':
    42.                         if (n-j==3) doc+=cs[0]+" ";
    43.                         if (n-j==2)
    44.                         {
    45.                             if (number[i+j+1]!='0') doc+="lẻ ";
    46.                             ddv=0;
    47.                         }
    48.                         break;
    49.                     case '1':
    50.                         if (n-j==3) doc+=cs[1] + " ";
    51.                         if (n-j==2)
    52.                         {
    53.                             doc+="mười ";
    54.                             ddv=0;
    55.                         }
    56.                         if (n-j==1)
    57.                         {
    58.                             if (i + j == 0) k = 0;
    59.                             else k = i + j - 1;
    60.  
    61.                             if (number[k]!='1' && number[k]!='0')
    62.                                 doc += "mốt ";
    63.                             else
    64.                                 doc+=cs[1]+" ";
    65.                         }
    66.                         break;
    67.                     case '5':
    68.                         if (i+j==len-1)
    69.                             doc+="lăm ";
    70.                         else
    71.                             doc+=cs[5]+" ";
    72.                         break;
    73.                     default:
    74.                         doc+=cs[(int)number[i+j]-48]+" ";
    75.                         break;
    76.                 }
    77.  
    78.                  //Doc don vi nho
    79.                 if (ddv==1)
    80.                 {
    81.                     doc+=dv[n-j-1]+" ";
    82.                 }
    83.             }
    84.         }
    85.        
    86.  
    87.         //Doc don vi lon
    88.         if (len-i-n>0)
    89.         {
    90.             if ((len - i - n ) % 9 == 0)
    91.             {
    92.                 if (rd==1)
    93.                     for (k = 0; k < (len - i - n) / 9; k++)
    94.                         doc += "tỉ ";
    95.                 rd=0;
    96.             }
    97.             else
    98.                 if (found!=0) doc+=dv[((len-i-n+1)%9)/3+2]+" ";
    99.         }
    100.  
    101.         i+=n;
    102.     }
    103.  
    104.     if (len == 1)
    105.         if (number[0] == '0' || number[0] == '5') return cs[(int)number[0] - 48];
    106.  
    107.     return doc;
    108. }

    Chỉ cần copy hàm này vào, sau đó khi nào muốn dùng thì chỉ việc gọi hàm ChuyenSo(number);
    Tham số truyền vào là 1 string chứa các con số, rất tiện lợi với việc đọc những con số hàng trăm chữ số.
    Mình đã test code của bạn, chạy rất tốt. Tuy nhiên còn bị lỗi nhỏ khi đọc một số trường hợp có số "5". Chẳng hạn "505" phải đọc là "Năm trăm lẻ năm" nhưng kết quả lại là "Năm trăm lẻ lăm"!

    Chúc bạn thành công!

  7. #27
    Ngày gia nhập
    01 2010
    Bài viết
    2

    Thanks Bạn Nhiều Nha ^^

  8. #28
    Ngày gia nhập
    11 2010
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi lion080889 Xem bài viết
    tui mới code lại bằng C# nên share cho mọi người xem thử
    chương trình này mình làm chạy đến số tỷ tỷ nếu muốn thêm cho dài thêm nữa thì sửa lại 1 chút là được

    code chính:
    Visual C# Code:
    1. txtkq.Text = replace_special_word(join_unit(txtn.Text)).ToUpper().Trim();

    các phương thức phụ:
    Visual C# Code:
    1.         private string join_unit(string n)
    2.         {
    3.             int sokytu = n.Length;
    4.             int sodonvi = (sokytu % 3 > 0) ? (sokytu / 3 + 1) : (sokytu / 3);
    5.             n = n.PadLeft(sodonvi * 3, '0');
    6.             sokytu = n.Length;
    7.             string chuoi = "";
    8.             int i = 1;
    9.             while (i <= sodonvi)
    10.             {
    11.                 if (i == sodonvi) chuoi = join_number((int.Parse(n.Substring(sokytu - (i * 3), 3))).ToString()) + unit(i) + chuoi;
    12.                 else chuoi = join_number(n.Substring(sokytu - (i * 3), 3)) + unit(i) + chuoi;
    13.                 i += 1;
    14.             }
    15.             return chuoi;
    16.         }
    17.  
    18.  
    19.         {
    20.             string chuoi = "";
    21.             if (n == 1) chuoi = " đồng ";
    22.             else if (n == 2) chuoi = " nghìn ";
    23.             else if (n == 3) chuoi = " triệu ";
    24.             else if (n == 4) chuoi = " tỷ ";
    25.             else if (n == 5) chuoi = " nghìn tỷ ";
    26.             else if (n == 6) chuoi = " triệu tỷ ";
    27.             else if (n == 7) chuoi = " tỷ tỷ ";
    28.             return chuoi;
    29.         }
    30.  
    31.  
    32. private string convert_number(string n)
    33.         {
    34.             string chuoi = "";
    35.             if (n == "0") chuoi = "không";
    36.             else if (n == "1") chuoi = "một";
    37.             else if (n == "2") chuoi = "hai";
    38.             else if (n == "3") chuoi = "ba";
    39.             else if (n == "4") chuoi = "bốn";
    40.             else if (n == "5") chuoi = "năm";
    41.             else if (n == "6") chuoi = "sáu";
    42.             else if (n == "7") chuoi = "bảy";
    43.             else if (n == "8") chuoi = "tám";
    44.             else if (n == "9") chuoi = "chín";
    45.             return chuoi;
    46.         }
    47.  
    48.  
    49. private string join_number(string n)
    50.         {
    51.             string chuoi = "";
    52.             int i = 1, j = n.Length;
    53.             while (i <= j)
    54.             {
    55.                 if (i == 1) chuoi = convert_number(n.Substring(j - i, 1)) + chuoi;
    56.                 else if (i == 2) chuoi = convert_number(n.Substring(j - i, 1)) + " mươi " + chuoi;
    57.                 else if (i == 3) chuoi = convert_number(n.Substring(j - i, 1)) + " trăm " + chuoi;
    58.                 i += 1;
    59.             }
    60.             return chuoi;
    61.         }
    62.  
    63.  
    64. private string replace_special_word(string chuoi)
    65.         {
    66.             chuoi = chuoi.Replace("không mươi không ", "");
    67.             chuoi = chuoi.Replace("không mươi", "lẻ");
    68.             chuoi = chuoi.Replace("i không", "i");
    69.             chuoi = chuoi.Replace("i năm", "i lăm");
    70.             chuoi = chuoi.Replace("một mươi", "mười");
    71.             chuoi = chuoi.Replace("mươi một", "mươi mốt");
    72.             return chuoi;
    73.         }

    ai cần mình gửi luôn file code winfrom đính kèm luôn nè
    xin phep dung thu

Các đề tài tương tự

  1. Chuyển code sang code ngắn hơn trong LINQ
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 14-04-2012, 11:19 AM
  2. chuyển từ code C++ sang C
    Gửi bởi nuocmatthanghe_90 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 26-02-2011, 10:02 AM
  3. Chuyển code Nested Dolls từ C sang code pascal
    Gửi bởi longago trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-01-2011, 08:54 AM
  4. chuyển code C++ từ VC++ 6.0 sang VC++ 9.0
    Gửi bởi chieftain_vn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 07-04-2009, 10:18 AM
  5. Chuyển code C++ sang code C, giúp mình với?
    Gửi bởi rong3sao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-04-2009, 09:28 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn