C# CalcPay方法工作不正常
我的CalcPay方法没有正确计算加班时间,有人能看到任何明显的问题会导致这种情况吗C# CalcPay方法工作不正常,c#,methods,C#,Methods,我的CalcPay方法没有正确计算加班时间,有人能看到任何明显的问题会导致这种情况吗 private const double FED_TAX = 0.2; private const int FULL_TIME = 40; private const double OVER_TIME = 1.5; private const double STATE_TAX = 0.075; public double CalcPay() {
private const double FED_TAX = 0.2;
private const int FULL_TIME = 40;
private const double OVER_TIME = 1.5;
private const double STATE_TAX = 0.075;
public double CalcPay()
{
double pay = hoursWorked * hourlyWage;
double overTimeHors = hoursWorked - FULL_TIME;
if (overTimeHours > 0)
{
pay = overTimeHors * (hourlyWage * OVER_TIME);
}
double tax1 = pay * FED_TAX;
double tax2 = pay * STATE_TAX;
return ((pay - tax1) - tax2);
}
您需要将加班费添加到主工资中,而不是替换它:
if (overTime > 0)
{
pay += overTime * (hourlyWage * OVER_TIME);
// ^ increment
}
您需要将加班费添加到主工资中,而不是替换它:
if (overTime > 0)
{
pay += overTime * (hourlyWage * OVER_TIME);
// ^ increment
}
问题是你重新定义了可变工资,这意味着你的计算是基于加班率的…问题是你重新定义了可变工资,这意味着你的计算是基于加班率的…如果这不是错的,到底错在哪里?您的方法名称具有误导性。它不应该是CalcPay,它应该是CalcoverTimePay。如果小时数<40,方法应该是calc pay,如果小时数>40,方法应该是calc加班费40@BXL这个解决方案没有任何问题。你说的“不固定”是什么意思?这个方法是一个更大程序的一部分,该程序从文件中读取数据并使用该数据计算工资。除非加班时间超过40小时,否则所有人都会被罚款。在这种情况下,如果数字按正常费率支付。如果这不是问题所在,那么到底是什么问题?您的方法名称具有误导性。它不应该是CalcPay,它应该是CalcoverTimePay。如果小时数<40,方法应该是calc pay,如果小时数>40,方法应该是calc加班费40@BXL这个解决方案没有任何问题。你说的“不固定”是什么意思?这个方法是一个更大程序的一部分,该程序从文件中读取数据并使用该数据计算工资。除非加班时间>40,否则所有人都会被罚款。在这种情况下,如果数字按正常费率支付。您能否提供一些样本输入及其预期输出?请通过提供明确要求澄清您的问题。您能否提供一些样本输入及其预期输出?请通过提供明确要求澄清您的问题。