此方法是较大程序的一部分,该程序从.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);
}
答案 0 :(得分: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);
}
答案 1 :(得分:0)
我已经解决了这个问题,正如许多人指出的那样,该方法可以正常工作,我正在按顺序读取输入,导致输出在加班时出错。感谢所有提供帮助的人。