-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 に答える