This week's book giveaway is in the JavaFX forum.
We're giving away four copies of Introducing JavaFX 8 Programming and have Herbert Schildt on-line!
See this thread for details.
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 Introducing JavaFX 8 Programming this week in the JavaFX 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
It's not a secret anymore!