I am just starting an advanced java course and I have a question for all those out here. How would I make it so that PayrollSystemTest displays the pieces produced from PieceWorker as an integer, rather than a double? I've tried changing getPieces to int, but that produced a conversion exception. Any information on this would be greatly appreciated. Thank you for your time.
PieceWorker.java:
 public class PieceWorker extends Employee 
{
  private double wage; // wage per piece
  private int pieces;  // pieces produced
  // constructor
public PieceWorker(String firstName, String lastName, String socialSecurityNumber, double wage, int pieces) 
{
    super(firstName, lastName, socialSecurityNumber);
    if (wage < 0.0) //validate wage
        throw new IllegalArgumentException("Wage must be >= 0.0");
    if ((pieces < 0))
        throw new IllegalArgumentException("Pieces produced must be >=0");
    this.wage = wage;
    this.pieces = pieces;
}
//set wage
    public void setWage(double wage)
    {
    if(wage < 0.0) // validate wage
        throw new IllegalArgumentException ("Wage must be >= 0.0");
    this.wage = wage;
    }
    //return wage
    public double getWage()
    {
        return wage;
    }
    //set hours worked
    public void setPieces(int pieces)
    {
        if ((pieces < 0))
            throw new IllegalArgumentException("Pieces produced must be >=0");
        this.pieces = pieces;
    }
    //return pieces produced
    public double getPieces()
    {
        return pieces;
    }
@Override
public double earnings() {
    return getPieces() * getWage();
}
@Override
public String toString()
{
    return String.format("piece worker: %s%n%s: $%,.2f, %s: %,.2f", super.toString(), "wage", getWage(), "pieces produced", getPieces());
}
}
PayrollSystemTest.java
// Fig 10.9: PayrollSystemTest.java
// Employee hierarchy test program.
public class PayrollSystemTest 
{
public static void main(String[] args)
{
    // create subclass objects
    SalariedEmployee salariedEmployee = new SalariedEmployee("John", "Smith", "111-11-1111", 800.00);
    HourlyEmployee hourlyEmployee = new HourlyEmployee("Karen", "Price", "222-22-2222", 16.75, 40);
    CommissionEmployee commissionEmployee = new CommissionEmployee("Sue", "Jones", "333-33-3333", 10000, .06);
    BasePlusCommissionEmployee basePlusCommissionEmployee = new BasePlusCommissionEmployee("Bob", "Lewis", "444-44-4444", 5000, .04, 300);
    PieceWorker pieceWorker = new PieceWorker("Tom", "Jacobson", "555-55-5555", 32.50, 80);
    System.out.println("Employees processed individually:");
    System.out.printf("%n%s%n%s: $%,.2f%n%n", salariedEmployee, "earned", salariedEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", hourlyEmployee, "earned", hourlyEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", commissionEmployee, "earned", commissionEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", basePlusCommissionEmployee, "earned", basePlusCommissionEmployee.earnings());
    System.out.printf("%s%n%s: $%,.2f%n%n", pieceWorker, "earned", pieceWorker.earnings());
    //create four-element Employee array
    Employee[] employees = new Employee[5];
    //initialize array with Employees
    employees[0] = salariedEmployee;
    employees[1] = hourlyEmployee;
    employees[2] = commissionEmployee;
    employees[3] = basePlusCommissionEmployee;
    employees[4] = pieceWorker;
    System.out.printf("Employees processed polymorphically:%n%n");
    //generically process each element in array employees
    for (Employee currentEmployee : employees)
    {
        System.out.println(currentEmployee); // invokes toString
        //determines whether element is a BasePlusCommissionEmployee
        if (currentEmployee instanceof BasePlusCommissionEmployee)
        {
            //downcast Employee reference to
            //BasePlusCommissionEmployee reference
            BasePlusCommissionEmployee employee = (BasePlusCommissionEmployee) currentEmployee;
            employee.setBaseSalary(1.10 * employee.getBaseSalary());
            System.out.printf("new base salary with 10%% increase is: $%,.2f%n", employee.getBaseSalary());
        }// end if
    } //end for
    // get type name of each object in employees array
    for (int j = 0; j < employees.length; j++)
        System.out.printf("Employee %d is a %s%n", j, employees[j].getClass().getName());
}// end main
}// end class PayrollSystemTest
 
    