Saturday, April 6, 2013

Convert Number Into Word

In most of cases we need to show the number (currency) in words as per Indian Standard form. So, I have created a small program that may be found to be helpful to us. I have created new console application that shows how the number can be shown in words based on Indian Standard form. Following screen shot itself shows how program result will it be.

Here is complete code...

File Name : Program.cs

using System;

namespace NumberToWordDemo {
    public class Program {
        public static void Main(String[] args)  {
            System.Console.WriteLine("Actual Number : " + int.MaxValue + "\nNumber In Word : " + NumberDescriptor.NumberToWord(int.MaxValue));
            System.Console.ReadKey();
        }
    }

    public class NumberDescriptor
    {
        public static String UnitToWord(int x)
        {
            String strNumber = "Zero";
            switch(x)
            {
                case 0:
                    strNumber = "Zero";
                break;
                case 1:
                    strNumber = "One";
                break;
                case 2:
                    strNumber = "Two";
                break;
                case 3:
                    strNumber = "Three";
                break;
                case 4:
                    strNumber = "Four";
                break;
                case 5:
                    strNumber = "Five";
                break;
                case 6:
                    strNumber = "Six";
                break;
                case 7:
                    strNumber = "Seven";
                break;
                case 8:
                    strNumber = "Eight";
                break;
                case 9:
                    strNumber = "Nine";
                break;
            }
            return strNumber;
        }

        public static String TensToWord(int x)
        {
            int tensValue = x/10;
            int unitValue = x%10;
            String strNumber = "";

            if(x > 0 && x < 10)
            {
                strNumber = UnitToWord(unitValue);
            }
            else if(x >= 10 && x <= 19)
            {
                switch(x)
                {
                    case 10:
                        strNumber = "Ten";
                    break;
                    case 11:
                        strNumber = "Eleven";
                    break;
                    case 12:
                        strNumber = "Twelve";
                    break;
                    case 13:
                        strNumber = "Thirteen";
                    break;
                    case 14:
                        strNumber = "Fourteen";
                    break;
                    case 15:
                        strNumber = "Fifteen";
                    break;
                    case 16:
                        strNumber = "Sixteen";
                    break;
                    case 17:
                        strNumber = "Seventeen";
                    break;
                    case 18:
                        strNumber = "Eighteen";
                    break;
                    case 19:
                        strNumber = "Nineteen";
                    break;
                }
            }
            else if(x >= 20 && x <= 99)
            {
                switch(tensValue)
                {
                    case 2:
                        strNumber = "Twenty";
                    break;
                    case 3:
                        strNumber = "Thirty";
                    break;
                    case 4:
                        strNumber = "Fourty";
                    break;
                    case 5:
                        strNumber = "Fifty";
                    break;
                    case 6:
                        strNumber = "Sixty";
                    break;
                    case 7:
                        strNumber = "Seventy";
                    break;
                    case 8:
                        strNumber = "Eighty";
                    break;
                    case 9:
                        strNumber = "Ninety";
                    break;
                }

                if(unitValue > 0)
                {
                    strNumber = strNumber + " " + UnitToWord(unitValue);
                }
            }

            return strNumber;
        }

        public static String NumberToWord(int x)
        {
            int offset = 1000000000;
            int index = 0;
            String strNumber = "";

            while(offset >= 1000)
            {
                if(x / offset > 0)
                {
                    strNumber += TensToWord(x / offset) + " " + Position(index) + " ";
                }

                index++;
                x = x % offset;
                offset = offset / 100;
            }

            if(x / 100 > 0)
            {
                strNumber += TensToWord(x / 100) + " " + Position(index) + " ";
                x = x % 100;
            }

            if(x > 0)
            {
                strNumber += TensToWord(x);
            }

            return strNumber.Trim();
        }

        private static String Position(int index)
        {
            String strIndex = "";

            switch(index)
            {
                case 0:
                    strIndex = "Billion";
                break;
                case 1:
                    strIndex = "Crore";
                break;
                case 2:
                    strIndex = "Lac";
                break;
                case 3:
                    strIndex = "Thousand";
                break;
                case 4:
                    strIndex = "Hundred";
                break;
            }

            return strIndex;
        }
    }
}



Above code can be modified or can be used as it is for free.

No comments:

Post a Comment

Age Calculator - Calculating difference between dates

Dear friends in most of the cases you need to work on dates. I had been stuck while calculating exact age of a person or total experience i...