0

私の 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);
    }
4

2 に答える 2

2

残業代を差し替えるのではなく、メインの給与に追加する必要があります。

if (overTime > 0)
{
    pay += overTime * (hourlyWage * OVER_TIME);
     // ^ increment
}
于 2012-12-08T17:21:49.353 に答える
1

問題は、計算が残業代に基づいていることを意味する変数給与を再定義したことです...

于 2012-12-08T17:34:15.103 に答える