2016-11-21 32 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倍他們的加班時間開臺率,所以如果有人工作45小時12.5)每美元小時,他們將賺取593.75美元。工資算術返回錯誤的答案

我的第一個案例正在工作(小時< = 40),但第二個案例似乎在上面的例子中返回了錯誤的答案(它返回$ 656.25)。我的操作符是否有問題,或者我根據Java語法編寫了這個等式?

+2

如果加班,工資應該是'40小時*基本費率+額外小時*基本費率* 1.5',但這不是你所擁有的。 (或者'全部小時*基本費率+額外小時*基本費率* 0.5',我想。) –

回答

1

Java是好的(儘管我害怕使用浮點數來計算貨幣金額),但是數學是關閉的。

您正在應用所有小時(不僅僅是前40)的正常費率,然後是加班時間的加班費率。