تبدیل اعداد به حروف

تبدیل

شما با استفاده از کد زیر میتوانید اعداد را به حروف تبدیل نمایید برای مثال :

123 تبدیل می شود به "صد و بیست و سه"

برای انجام این کار کافی هست که کد زیر را به برنامه خود اضافه نمایید

 

   #region عدد به حروف

        string[] yakan = new string[10] { "صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه" };
        string[] dahgan = new string[10] { "", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود" };
        string[] dahyek = new string[10] { "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };
        string[] sadgan = new string[10] { "", "یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد" };
        string[] basex = new string[5] { "", "هزار", "میلیون", "میلیارد", "تریلیون" };
        string getnum3(int num3)
        {
            try
            {
                string s = "";
                int d3, d12;
                d12 = num3 % 100;
                d3 = num3 / 100;
                if (d3 != 0)
                    s = sadgan[d3] + " و ";
                if ((d12 >= 10) && (d12 <= 19))
                {
                    s = s + dahyek[d12 - 10];
                }
                else
                {
                    int d2 = d12 / 10;
                    if (d2 != 0)
                        s = s + dahgan[d2] + " و ";
                    int d1 = d12 % 10;
                    if (d1 != 0)
                        s = s + yakan[d1] + " و ";
                    s = s.Substring(0, s.Length - 3);
                };
                return s;
            }
            catch
            {
                return "";
            }
        }

        public string NumberToString(string PriceNumber, bool? IsRial = null)
        {
            try
            {
                string stotal = "";
                if (PriceNumber == "") return "صفر";
                if (PriceNumber == "0")
                    return yakan[0];
                else
                {
                    if (PriceNumber.Contains('.'))
                    {
                        string[] dots = PriceNumber.Split('.');
                        PriceNumber = dots[0];
                    }
                    if (PriceNumber.Contains(','))
                    {
                        string[] HelpArr = PriceNumber.Split(',');
                        for (int i = 1; i < HelpArr.Length; i++)
                        {
                            HelpArr[0] += HelpArr[i];
                        }
                        PriceNumber = HelpArr[0];
                    }
                    PriceNumber = PriceNumber.PadLeft(((PriceNumber.Length - 1) / 3 + 1) * 3, '0');
                    int L = PriceNumber.Length / 3 - 1;
                    for (int i = 0; i <= L; i++)
                    {
                        int b = int.Parse(PriceNumber.Substring(i * 3, 3));
                        if (b != 0)
                            stotal = stotal + getnum3(b) + " " + basex[L - i] + " و ";
                    }
                    stotal = stotal.Substring(0, stotal.Length - 3);
                }
                if (IsRial == null)
                    return stotal;
                if (IsRial == true)
                    return stotal + " ریال ";
                else
                    return stotal + " تومان ";
            }
            catch
            {
                return "مقدار وارد شده قابل محاسبه نیست";
            }
        }

        #endregion

منبع : CRM - نویسنده : احسان ملکی

دیدگاه ها (0)

دیدگاه خود را بیان کنید