Convert Number into text format in C#

Below function will convert inputted number into text format

public static string NumberToText(int number, bool isUK)
{
            // return “Zero” if number is 0
            if (number == 0) return “Zero”;
          
            string and = isUK ? “and ” : “”; // deals with UK or US numbering
 
            if (number == -2147483648) return “Minus Two Billion One Hundred ” + and +
            “Forty Seven Million Four Hundred ” + and + “Eighty Three Thousand ” +
            “Six Hundred ” + and + “Forty Eight”;
            int[] num = new int[4];
            int first = 0;
            int u, h, t;
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            if (number < 0)
            {
                sb.Append(“Minus “);
                number = -number;
            }

            string[] words0 = { “”, “One “, “Two “, “Three “, “Four “, “Five “, “Six “, “Seven “, “Eight “, “Nine ” };
            string[] words1 = { “Ten “, “Eleven “, “Twelve “, “Thirteen “, “Fourteen “, “Fifteen “, “Sixteen “,      “Seventeen “, “Eighteen “, “Nineteen ” };
            string[] words2 = { “Twenty “, “Thirty “, “Forty “, “Fifty “, “Sixty “, “Seventy “, “Eighty “, “Ninety ” };
            string[] words3 = { “Thousand “, “Million “, “Billion ” };
            num[0] = number % 1000;           // units
            num[1] = number / 1000;
            num[2] = number / 1000000;
            num[1] = num[1] – 1000 * num[2];  // thousands
            num[3] = number / 1000000000;     // billions
            num[2] = num[2] – 1000 * num[3];  // millions
 
            for (int i = 3; i > 0; i–)
            {
                if (num[i] != 0)
                {
                    first = i;
                    break;
                }
            }

            for (int i = first; i >= 0; i–)
            {
                if (num[i] == 0) continue;
                u = num[i] % 10;              // ones
                t = num[i] / 10;
                h = num[i] / 100;             // hundreds
                t = t – 10 * h;               // tens
                if (h > 0) sb.Append(words0[h] + “Hundred “);
                if (u > 0 || t > 0)
                {
                    if (h > 0 || i < first) sb.Append(and);
                    if (t == 0)
                        sb.Append(words0[u]);
                    else if (t == 1)
                        sb.Append(words1[u]);
                    else
                        sb.Append(words2[t – 2] + words0[u]);
                }
                if (i != 0) sb.Append(words3[i – 1]);
            }

            return sb.ToString().TrimEnd();
}

One thought on “Convert Number into text format in C#

  • December 9, 2016 at 4:30 PM
    Permalink

    Thanks for your posting. Another thing is that being photographer entails not only problems in taking award-winning photographs but additionally hardships in acquiring the best photographic camera suited to your requirements and most especially struggles in maintaining the grade of your camera. This really is very real and noticeable for those professional photographers that are in capturing the actual nature’s fascinating scenes — the mountains, the forests, the actual wild or the seas. Visiting these amazing places definitely requires a camera that can live up to the wild’s tough conditions.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *