aspose file tools*
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
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Accepting Numeric User Input " Watch "Accepting Numeric User Input " New topic
Author

Accepting Numeric User Input

foyo soul
Greenhorn

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 System.in.read() 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:");
hoursWorked=(int)System.in.read();
System.in.read();
System.out.println("Enter in the pay rate:");
payRate=(double)System.in.read();
System.in.read();

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 system.in 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
Greenhorn

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(System.in));
String S = B.readLine();
float N = Float.parseFloat(S);
// int would be input by
// int N = Integer.parseInt(S);

JL
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Accepting Numeric User Input