2016-11-21 19 views
-1
public double totalWages(double hours, double rate) 
    { 
    double wages; 
    if (hours <= 40){ 
     wages = hours * rate; 
    } 
    else { 
     wages = ((hours * rate) + ((hours - 40) * (1.5 * rate))); 
    } 
    return wages; 
} 

基本的には、時間外労働時間(40時間以上)で働く場合、その時間率は元の時間外労働時間の1.5倍になるため、12時間あたり45.5時間彼らは$ 593.75を獲得するだろう。賃金計算が間違った返答を返します

私の最初のケースは働いています(< = 40)。しかし、2番目のケースは、上記の例で間違った答えを返すようです($ 656.25を返しています)。私の演算子に何か問題がありますか、あるいはJavaの構文に従って式を書いた方法でしょうか?

+2

残業をする場合、賃金は「40時間*基本料金+余分な時間*基本料金* 1.5」でなければなりませんが、それはあなたが持っているものではありません。 (あるいは 'すべての時間*基本料金+余分な時間*基本料金* 0.5'、私​​は思います) –

答えて

1

Javaは大丈夫です(ただし、金額に浮動小数点を使用することを恐れています)が、計算はオフです。

の全額を時間(最初の40時間だけではありません)に適用し、その後、超過時間の超過レートを適用しています。

関連する問題