Converting a number into its equalant value in words in Java

By: Ganesh Iyer  

In this tutorial, i will explain how a number can be converted to its value as a word using Java. If you are wondering how and where this can be used, take the example of Money values. If the Amount is in numbers and you would like to convert the amount in words then this program will be useful for you.

/* Author         - Ganesh Iyer
  Program        - Displaying the input number into words
  Written on     - 06-06-2009 */


class constNumtoLetter
  {
      String[] unitdo ={"", " One", " Two", " Three", " Four", " Five",
         " Six", " Seven", " Eight", " Nine", " Ten", " Eleven", " Twelve",
         " Thirteen", " Fourteen", " Fifteen",  " Sixteen", " Seventeen", 
         " Eighteen", " Nineteen"};
      String[] tens =  {"", "Ten", " Twenty", " Thirty", " Forty", " Fifty",
         " Sixty", " Seventy", " Eighty"," Ninety"};
      String[] digit = {"", " Hundred", " Thousand", " Lakh", " Crore"};
     int r;


      //Count the number of digits in the input number
      int numberCount(int num)
      {
          int cnt=0;

          while (num>0)
          {
            r = num%10;
            cnt++;
            num = num / 10;
          }

            return cnt;
      }


      //Function for Conversion of two digit

      String twonum(int numq)
      {
           int numr, nq;
           String ltr=\"";

           nq = numq / 10;
           numr = numq % 10;

           if (numq>19)
             {
           ltr=ltr+tens[nq]+unitdo[numr];
             }
           else
             {
           ltr = ltr+unitdo[numq];
             }

           return ltr;
      }

      //Function for Conversion of three digit

      String threenum(int numq)
      {
             int numr, nq;
             String ltr = "";

             nq = numq / 100;
             numr = numq % 100;

             if (numr == 0)
              {
              ltr = ltr + unitdo[nq]+digit[1];
               }
             else
              {
              ltr = ltr +unitdo[nq]+digit[1]+" and"+twonum(numr);
              }
             return ltr;

      }

}

 class originalNumToLetter

   {

      public static void main(String[] args) throws Exception
      {

          //Defining variables q is quotient, r is remainder

          int len, q=0, r=0;
          String ltr = " ";
          String Str = "Rupees";
          constNumtoLetter n = new constNumtoLetter();
          int num = Integer.parseInt(args[0]);

          if (num <= 0) System.out.println(\"Zero or Negative number not for conversion");

          while (num>0)
          {

             len = n.numberCount(num);

             //Take the length of the number and do letter conversion

             switch (len)

             {
                  case 8:
                          q=num/10000000;
                          r=num%10000000;
                          ltr = n.twonum(q);
                          Str = Str+ltr+n.digit[4];
                          num = r;
                          break;

                  case 7:
                  case 6:
                          q=num/100000;
                          r=num%100000;
                          ltr = n.twonum(q);
                          Str = Str+ltr+n.digit[3];
                          num = r;
                          break;

                  case 5:
                  case 4:

                           q=num/1000;
                           r=num%1000;
                           ltr = n.twonum(q);
                           Str= Str+ltr+n.digit[2];
                           num = r;
                           break;

                  case 3:


                            if (len == 3)
                                r = num;
                            ltr = n.threenum(r);
                            Str = Str + ltr;
                            num = 0;
                            break;

                  case 2:

                           ltr = n.twonum(num);
                           Str = Str + ltr;
                           num=0;
                           break;

                  case 1:
                           Str = Str + n.unitdo[num];
                           num=0;
                           break;
                  default:

                          num=0;
                          System.out.println(\"Exceeding Crore....No conversion");
                          System.exit(1);


              }
                          if (num==0)
                          System.out.println(Str+\" Only");
            }

         }

      }

      To Execute

                 java originalNumToLetter <INPUT>

             Ex -   java originalNumToLetter 1234

      Output


      Rupees One Thousand Two Hundred and Thirty Four Only




Archived Comments

1. L'occasion d'installer une caméra cachée sur Corwin.
View Tutorial          By: camera caché at 2017-09-21 11:14:40

2. do you have a program that can accept floating numbers??
example:

Enter a numb

View Tutorial          By: jhay at 2016-10-21 10:23:38

3. excelent logic.
View Tutorial          By: naresh boorla at 2016-09-27 04:40:42

4. I need simple logic
View Tutorial          By: AshLii MaHii at 2016-06-18 02:10:16

5. input 325
output :three two five

View Tutorial          By: jyothi at 2015-12-16 09:17:30

6. really helpul........
pls mail me some more logical programs of java

View Tutorial          By: senthil at 2013-08-19 17:53:02

7. Thanks a lot for valuable program.

But I am unable to use it in JSP..i mean how to pa

View Tutorial          By: Kailash at 2012-07-30 10:09:12

8. thank for the code...
how to print same output in two lines
Number 120545
eg:On

View Tutorial          By: Ajay at 2012-04-01 17:29:15

9. What is the \ in several of the string building statements.
i.e.
System.out.printl

View Tutorial          By: rogerb at 2012-01-28 23:07:31

10. Thanks a ton Ganesh...
View Tutorial          By: Anonymous at 2012-01-25 11:20:40

11. //Convert numbers to word as per Indian number system in java by if loop. It works up to 999999999.
View Tutorial          By: Abhishek at 2011-09-05 10:42:20

12. really helpul........
pls mail me some more logical programs of java
thnxx a lot

View Tutorial          By: shivani at 2010-07-17 01:47:30

13. Thanks alot.. it helped me a lot...
View Tutorial          By: Sushmitha Rao at 2010-06-02 02:39:51

14. Thanks and easy to understand.....impressive logic...
View Tutorial          By: Dj at 2009-11-26 13:33:34


Most Viewed Articles (in Java )

Latest Articles (in Java)

Comment on this tutorial