File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Accepting Numeric User Input Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Accepting Numeric User Input " Watch "Accepting Numeric User Input " New topic

Accepting Numeric User Input

foyo soul

Joined: Apr 25, 2004
Posts: 1
I am working on a Java program that calculates payroll and overtime pay. The user enters in the number of hours worked and the pay rate. My problem is that I cannot get the program to except numerical input from the keyboard. It's using unicode or something because the calculations are all wrong when I desk check the program. How do you get Java to read 40 hours as an integer of 40 and a double pay rate of $10.00 as double variable of 10.00 from the keyboard as it is entered in by the user. I have been using the method for user input.
Here's what I have so far:
public class Pay
public static void main(String[] args) throws Exception
double payRate;
int hoursWorked;
double regularPay;
double overTimePay;

System.out.println("Enter the hours worked:");
System.out.println("Enter in the pay rate:");

if(hoursWorked == 50)
regularPay = payRate * 40;
overTimePay = (hoursWorked - 40) * (payRate * 2);
else if(hoursWorked == 45)
regularPay = payRate * 40;
overTimePay = (hoursWorked - 40) * (payRate * 2);
else if(hoursWorked == 40)
regularPay = payRate * 40;
overTimePay = 0.0;
else System.out.println("Invalid number of hours");

System.out.println("The number of hours worked is " + hoursWorked);
System.out.println("The hourly rate is " + payRate);
System.out.println("The regular pay is " + regularPay);
System.out.println("Overtime pay is " + overTimePay);

P. Sagdeo
Ranch Hand

Joined: Nov 13, 2003
Posts: 67
Uhh, the more knowledgeable people may want to correct me, but I think that one reads text using something else, like:
, not using the way one uses system.out. In shorter terms, one has to make an instance of the JAVA reader in order to read input. Also, as a side note, you may have to include try/catch for IOExceptions.
James Lollar

Joined: Apr 24, 2004
Posts: 4
You might try this (or something like it) to get your data,.
System.out.print("Enter the hours worked:");
BufferedReader B = new BufferedReader(new InputStreamReader(;
String S = B.readLine();
float N = Float.parseFloat(S);
// int would be input by
// int N = Integer.parseInt(S);

I agree. Here's the link:
subject: Accepting Numeric User Input