Java:计算员工的工资

dra*_*ayl 0 java

关于如何显示员工的计算工资,我又遇到了一个问题.当我输入小时工资时,工资总额不会显示..

这是我到目前为止所做的......

WageCalcu.java

  public class WageCalcu
  {
      private String employeeName;
      private int hours;
      private double rate, pay;

      public void setEmployeeName ( String name )
      {
          employeeName = name;
      }
      public String getEmployeeName()
      {
          return employeeName;
      }
      public double calculatePay( int hours, double rate )
      {
          if ( hours > 40 )
          { 
              int extraHours = hours - 40;
              pay = ( 40 * rate ) + ( extraHours * rate );
          }
          else pay = hours * rate;

          return pay;
      }
      public void displayEmployee()
      {
          System.out.printf( "Employee's name: %s", getEmployeeName() );
          System.out.printf( "\nGross Salary: ", + pay );
      }
  }
Run Code Online (Sandbox Code Playgroud)

Employee.java

  import java.util.Scanner;
  public class Employee 
  {    
      public static void main(String[] args) 
      {
          Scanner input = new Scanner( System.in);
          WageCalcu employee = new WageCalcu();

          System.out.print( "Enter Employee %s name: " );
          String name = input.nextLine();
          employee.setEmployeeName( name );

          System.out.print( "Enter how many hours worked: " );
          int hours = input.nextInt();

          System.out.print( "Enter hourly rate: " );
          double rate = input.nextInt();

          employee.calculatePay( hours, rate );
          employee.displayEmployee();

          System.out.println();

      }
  }
Run Code Online (Sandbox Code Playgroud)

nul*_*ent 7

我相信你的意思是:

System.out.printf("\nGross Salary:%f",pay);

还有一件事

double rate = input.nextInt();
Run Code Online (Sandbox Code Playgroud)

应该

double rate = input.nextDouble(); 
Run Code Online (Sandbox Code Playgroud)

如果你真的期待一个真实的数字.