【问题标题】:0.00 should not be the answer [closed]0.00 不应该是答案 [关闭]
【发布时间】:2014-08-18 02:48:43
【问题描述】:
package CompanyEmployees;

public class DoEmployeePayroll {

    public static void main(String args[]) {

        FullTimeEmployee ftEmployee = new FullTimeEmployee();

        ftEmployee.setName("Barry Burd");
        ftEmployee.setJobTitle("CEO");
        ftEmployee.setWeeklySalary(5000.00);
        ftEmployee.setBenefitDeduction(500.00);
        ftEmployee.cutCheck(ftEmployee.findPaymentAmount());
        System.out.println();

        PartTimeEmployee ptEmployee = new PartTimeEmployee();

        ptEmployee.setName("Steve Surace");
        ptEmployee.setJobTitle("Driver");
        ptEmployee.setHourlyRate(7.53);
        ptEmployee.cutCheck(ptEmployee.findPaymentAmount(10));
    }
}

package CompanyEmployees;
import static java.lang.System.out;

public class Employee {

    private String name;
    private String jobTitle;

    public void setName(String nameIn) {
        name = nameIn;
    }

    public String getName() {
        return name;
    }

    public void setJobTitle(String jobTitleIn) {
        jobTitle = jobTitleIn;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void cutCheck(double amountPaid) {
        out.printf("Pay to the order of %s ", name);
        out.printf("(%s) ***$", jobTitle);
        out.printf("%,.2f\n", amountPaid);
    }
}


package CompanyEmployees;

public class PartTimeEmployee extends Employee {

    private double hourlyRate;

    public void setHourlyRate(double rateIn) {
        rateIn = hourlyRate;
    }

    public double getHourlyRate() {
        return hourlyRate;
    }

    public double findPaymentAmount(int hours) {
        return hourlyRate * hours;
    }
}

我计算了全职员工,但结果不正确的是兼职员工。付款应该是 75.30,但它输出 0.00。

【问题讨论】:

  • 重新审视 setHourlyRate
  • 不要对任何需要精确的东西使用浮点数。

标签: java object methods


【解决方案1】:

你在这里颠倒了论点

private double hourlyRate;
public void setHourlyRate(double rateIn) {
  rateIn = hourlyRate;
}

应该是

public void setHourlyRate(double rateIn) {
  this.hourlyRate = rateIn;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2022-06-16
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多