Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CalcPay方法工作不正常_C#_Methods - Fatal编程技术网

C# 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() {

我的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,否则所有人都会被罚款。在这种情况下,如果数字按正常费率支付。您能否提供一些样本输入及其预期输出?请通过提供明确要求澄清您的问题。您能否提供一些样本输入及其预期输出?请通过提供明确要求澄清您的问题。