When i run a single number (1-9), it'll output as ONEONE or TWOTWO, etc.. As well with numbers 11-19, they'll show up as ONEELEVEN or TWOTWELVE, etc. 20-100 outputs fine whereas 101 becomes ONE HUNDRED TEN ONE ONE, etc.I have no idea what I've done any help would be greatly appreciated.
public class Main
{
public static void main (String args []) throws IOException
{
//Initializes the BufferReader for user input
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
System.out.println("Numbers to Words (1-999 Edition)");
System.out.println("================================");
int tryAgain=1;//will initiate the first do-while loop of the program.
do{
System.out.println();
System.out.println("Input a number (1-999) and this program will repeat it to you with words.");
double numInput=Integer.parseInt(br.readLine());//user inputs number
System.out.println();
int error=1;//will initiate error check
do{
if(numInput<1 || numInput>999){//if the user enters an invalid number
System.out.println("Invalid number. Enter a number between 1 and 999.");
numInput=Integer.parseInt(br.readLine());//user must re-enter a number if they entered an invalid one
System.out.println();}
else{
error=0;}//will end error loop if the number is correct
}while(error==1);
double hundredsDigit=Math.floor(numInput/100),
tensDigit=Math.floor((numInput % 100) / 10);
double onesDigit = numInput%10,tensones=numInput%100;
System.out.print("Your number in words is: ");
if (numInput>=100&&numInput<=999){
hundreds(hundredsDigit);
System.out.print(" ");
if ((tensones>=11)&&(tensones<=19))
teens(tensones);
if ((tensones>=1)&&(tensones<=99))
tensDigit=Math.floor(tensones/10);
tens(tensones);
System.out.print(" ");//puts a space between the tens and ones
onesDigit=tensones%10;
ones(tensones);}
if ((numInput>=20)&&(numInput<=99))
tens(tensDigit);
System.out.print(" ");
ones(onesDigit);
if ((numInput>=10)&&(numInput<=19))//will initiate the teens subroutine)
teens(numInput);
if (numInput<=9)
ones(numInput);
System.out.println();
System.out.println();
System.out.println("Press 1 to try again.");
tryAgain=Integer.parseInt(br.readLine());//user decides to try again
System.out.println();
}while(tryAgain==1);//will repeat program if user chooses to enter another number
}//closes main body
//method that will print the "hundreds" part of numbers 100-999
public static void hundreds(double hundredsDigit){
if (hundredsDigit==1){
System.out.print("ONE HUNDRED");
}
if (hundredsDigit==2){
System.out.print("TWO HUNDRED");
}
if (hundredsDigit==3){
System.out.print("THREE HUNDRED");
}
if (hundredsDigit==4){
System.out.print("FOUR HUNDRED");
}
if (hundredsDigit==5){
System.out.print("FIVE HUNDRED");
}
if (hundredsDigit==6){
System.out.print("SIX HUNDRED");
}
if (hundredsDigit==7){
System.out.print("SEVEN HUNDRED");
}
if (hundredsDigit==8){
System.out.print("EIGHT HUNDRED");
}
if (hundredsDigit==9){
System.out.print("NINE HUNDRED");
}
}//closes hundreds method
//method that will print the "tens" part of numbers 20-99
public static void tens(double tensDigit){
if (tensDigit==1){
System.out.print("TEN");
}
if (tensDigit==2){
System.out.print("TWENTY");
}
if (tensDigit==3){
System.out.print("THIRTY");
}
if (tensDigit==4){
System.out.print("FORTY");
}
if (tensDigit==5){
System.out.print("FIFTY");
}
if (tensDigit==6){
System.out.print("SIXTY");
}
if (tensDigit==7){
System.out.print("SEVENTY");
}
if (tensDigit==8){
System.out.print("EIGHTY");
}
if (tensDigit==9){
System.out.print("NINETY");
}
}//closes tens method
//method that will print the numbers 10-19
public static void teens(double numInput){
if (numInput==10){
System.out.print("TEN");
}
if (numInput==11){
System.out.print("ELEVEN");
}
if (numInput==12){
System.out.print("TWELVE");
}
if (numInput==13){
System.out.print("THIRTEEN");
}
if (numInput==14){
System.out.print("FOURTEEN");
}
if (numInput==15){
System.out.print("FIFTEEN");
}
if (numInput==16){
System.out.print("SIXTEEN");
}
if (numInput==17){
System.out.print("SEVENTEEN");
}
if (numInput==18){
System.out.print("EIGHTEEN");
}
if (numInput==19){
System.out.print("NINETEEN");
}
}//closes teens method
//method that will print the "ones" part of numbers 20-99
public static void ones(double onesDigit){
if (onesDigit==1){
System.out.print("ONE");
}
if (onesDigit==2){
System.out.print("TWO");
}
if (onesDigit==3){
System.out.print("THREE");
}
if (onesDigit==4){
System.out.print("FOUR");
}
if (onesDigit==5){
System.out.print("FIVE");
}
if (onesDigit==6){
System.out.print("SIX");
}
if (onesDigit==7){
System.out.print("SEVEN");
}
if (onesDigit==8){
System.out.print("EIGHT");
}
if (onesDigit==9){
System.out.print("NINE");
}
}//closes ones method