-1

此方法是一个更大程序的一部分,该程序从 .txt 文件中提取员工数据,然后使用该数据计算净工资。我的 CalcPay 方法应该计算小时 > 40 和小时 < 40 的工资,但是当它到达超过 40 小时的员工时,它计算他们的工资只是小时 * 工资,而不是花费时间 > 40 并制作他们的时间和一个半......有什么建议吗?

public double CalcPay()
    {

        double pay = hoursWorked * hourlyWage;
        double overTimeHours = hoursWorked - FULL_TIME;

        if (overTimeHours > 0)
        {
            pay += overTimeHours * (hourlyWage * OVER_TIME_RATE);
        }
        double tax1 = pay * FED_TAX;
        double tax2 = pay * STATE_TAX;
        return ((pay - tax1) - tax2);
    }
4

2 回答 2

1

我可能会做这样的事情。

 public double CalcPay()
    {
        double regularHours = Math.Min(hoursWorked, FULL_TIME);
        double overTimehours = Math.Max(hoursWorked - FULL_TIME, 0);

        double regularPay = regularHours * hourlyWage;
        double overTimePay = overTimehours * hourlyWage * OVER_TIME_RATE;
        double pay = regularPay + overTimePay;

        double tax1 = pay * FED_TAX;
        double tax2 = pay * STATE_TAX;
        return ((pay - tax1) - tax2);
    }
于 2012-12-08T18:49:28.067 回答
0

我已经解决了这个问题,正如许多人指出的那样,该方法应该有效,我正在无序地读取输入,这导致在超时的情况下输出错误。感谢所有提供帮助的人。

于 2012-12-08T20:19:04.477 回答