Programming Tutorials

(追記) (追記ここまで)

Converting a number into its equalant value in words in Java

By: Ganesh Iyer in Java Tutorials on 2009年06月08日 [フレーム]

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.

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 1234

Output

 Rupees One Thousand Two Hundred and Thirty Four Only



(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /