Pages

Sunday 23 March 2014

Number To Word Using Java ( FOR NEGATIVE , POSITIVE, FRACTIONAL VALUES )

HI FRIENDS THIS IS A VERY SIMPLE PROGRAM THAT WILL CONVERT DECIMAL NUMBER TO IT'S EQUIVALENT AMOUNT IN WORDS.

import java.util.Scanner;

public class NumToWord {

String string;
String st1[] = { "", "one", "two", "three", "four", "five", "six", "seven","eight", "nine", };
String st2[] = { "hundred", "thousand", "lakh", "crore" };
String st3[] = { "ten", "eleven", "twelve", "thirteen", "fourteen",
         "fifteen", "sixteen", "seventeen", "eighteen", "ninteen", };
String st4[] = { "twenty", "thirty", "fourty", "fifty", "sixty", "seventy","eighty", "ninty" };

public String convert(int number) {
int n = 1;
int word;
string = "";
while (number != 0) {
switch (n) {
case 1:
word = number % 100;
pass(word);
if (number > 100 && number % 100 != 0) {
show("and ");
}
number /= 100;
break;

case 2:
word = number % 10;
if (word != 0) {
show(" ");
show(st2[0]);
show(" ");
pass(word);
}
number /= 10;
break;

case 3:
word = number % 100;
if (word != 0) {
show(" ");
show(st2[1]);
show(" ");
pass(word);
}
number /= 100;
break;

case 4:
word = number % 100;
if (word != 0) {
show(" ");
show(st2[2]);
show(" ");
pass(word);
}
number /= 100;
break;

case 5:
word = number % 100;
if (word != 0) {
show(" ");
show(st2[3]);
show(" ");
pass(word);
}
number /= 100;
break;

}
n++;
}
return string;
}

public void pass(int number) {
int word, q;
if (number < 10) {
show(st1[number]);
}
if (number > 9 && number < 20) {
show(st3[number - 10]);
}
if (number > 19) {
word = number % 10;
if (word == 0) {
q = number / 10;
show(st4[q - 2]);
} else {
q = number / 10;
show(st1[word]);
show(" ");
show(st4[q - 2]);
}
}
}

public void show(String s) {
String st;
st = string;
string = s;
string += st;
}

public static void main(String[] args) {
NumToWord w = new NumToWord();
try {
Scanner input = new Scanner(System.in);
System.out.print("Enter Number: ");
String num = input.nextLine();
int num2 = 0;
boolean isMinus = false;

if (num.indexOf(".") == -1) {
if (num.charAt(0) == '-') {
String num3 = num.substring(1);
isMinus = true;
num2 = Integer.parseInt(num3);
} else {
num2 = Integer.parseInt(num);
}
String inwords = w.convert(num2);
if (isMinus) {
System.out.println("minus " + inwords);
} else {
System.out.println(inwords);
}
} else {
String part1 = num.substring(0, num.indexOf("."));
String part2 = num.substring(num.indexOf(".")+1);
if (part1.charAt(0) == '-') {
String num3 = part1.substring(1);
isMinus = true;
num2 = Integer.parseInt(num3);
} else {
num2 = Integer.parseInt(part1);
}
String inwords1 = w.convert(num2);
String inwords2 = w.convert(Integer.parseInt(part2));
if (isMinus) {
System.out.println("minus " + inwords1 + " point "+ inwords2);
} else {
System.out.println(inwords1 + " point "+ inwords2);
}
}
} catch (Exception e) {
System.out.println("Not a valid number.");
}
}
}


=======================================================================
* CONVERT ALL DECIMAL WITH FRACTIONAL PART AS WELL AS MINUS VALUE.
=======================================================================

No comments:

Post a Comment