Advertisement
touhid_xml

Number To Words in C#

Nov 29th, 2016
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Number_To_Words
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Console.WriteLine("Enter number to convert in words:");
  13.             var input = Console.ReadLine();
  14.             int number;
  15.             bool isParsed;
  16.             isParsed = int.TryParse(input, out number);
  17.             if (isParsed)
  18.             {
  19.                 Console.WriteLine(NumberToWords(number).ToUpper());
  20.             }
  21.             else
  22.             {
  23.               Console.WriteLine("Invalid number input");  
  24.             }
  25.  
  26.             Console.ReadKey();
  27.  
  28.         }
  29.  
  30.         public static string NumberToWords(int number)
  31.         {
  32.             if (number == 0)
  33.                 return "zero";
  34.  
  35.             if (number < 0)
  36.                 return "minus " + NumberToWords(Math.Abs(number));
  37.  
  38.             string words = "";
  39.  
  40.             if ((number / 1000000) > 0)
  41.             {
  42.                 words += NumberToWords(number / 1000000) + " million ";
  43.                 number %= 1000000;
  44.             }
  45.  
  46.             if ((number / 1000) > 0)
  47.             {
  48.                 words += NumberToWords(number / 1000) + " thousand ";
  49.                 number %= 1000;
  50.             }
  51.  
  52.             if ((number / 100) > 0)
  53.             {
  54.                 words += NumberToWords(number / 100) + " hundred ";
  55.                 number %= 100;
  56.             }
  57.  
  58.             if (number > 0)
  59.             {
  60.                 if (words != "")
  61.                     words += "and ";
  62.  
  63.                 var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  64.                 var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
  65.  
  66.                 if (number < 20)
  67.                     words += unitsMap[number];
  68.                 else
  69.                 {
  70.                     words += tensMap[number / 10];
  71.                     if ((number % 10) > 0)
  72.                         words += "-" + unitsMap[number % 10];
  73.                 }
  74.             }
  75.  
  76.             return words;
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement