2014-02-18 147 views
0

出於某種原因,我得到的數據不同於我應該的數值。我在這裏做錯了什麼?數學數值不能正確計算

代碼:

overtimeHours = hoursWorked - 40; 

regularPay = hourlyWage * hoursWorked - overtimeHours; 
overtimePay = 1.5 * hourlyWage * overtimeHours; 
totalPay = hourlyWage * hoursWorked + overtimePay; 

輸出:

Please enter employee's name: John 
Please enter The Dragon's hourly wage: 22.50 
Please enter how many hours The Dragon worked: 48.5 

John's Wages 
Regular Pay: $ 1082.75 
Overtime Pay: $ 286.88 
Total Pay: $ 1378.13 
+0

我應該得到常規薪酬:900.00,加班頁面:286.88,總薪水:1186.88。我的加班價值是正確的,但不是其他價值。 – TheEliteTech

+0

是變量int? – Zavior

+0

他們是雙打。 – TheEliteTech

回答

9

的操作順序,就像你在基本的數學學。你計算

(hourlyWage * hoursWorked) - overtimeHours 

相反,你要

hourlyWage * (hoursWorked - overtimeHours) 

此外,你不應該在你的total重新計算;相反,只需添加定期和加班。

最後,正如@CodeMonkey所說,你無條件地假定這個人正在加班。這是我建議,而不是:

if(hoursWorked > 40) { 
    regularHours = 40; 
    overtimeHours = regularHours - 40; 
} else { 
    regularHours = hoursWorked; 
    overtimeHours = 0; 
} 
+2

另外,不要忘記考慮到,如果你的工作時間少於40小時,你會得到負面的加班和負收入! :-) – CodeMonkey

+0

是的。我想到了。如果它小於或等於0,我把System.out放在不顯示加班的地方。 – TheEliteTech

+0

@TheEliteTech你的計算結果仍然是錯誤的;你需要按照我所展示的方式來計算加班/不加班。 – chrylis