出于某种原因,我得到的数学值与应有的不同。我在这里做错了什么?
代码:
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
最佳答案
运算顺序,就像您在基础数学中学到的那样。你正在计算
(hourlyWage * hoursWorked) - overtimeHours
相反,你想要
hourlyWage * (hoursWorked - overtimeHours)
此外,您不应重新计算总计
;相反,只需添加正常时间和加类时间即可。
最后,正如 @CodeMonkey 指出的那样,您无条件地假设此人正在加类。这是我的建议:
if(hoursWorked > 40) {
regularHours = 40;
overtimeHours = regularHours - 40;
} else {
regularHours = hoursWorked;
overtimeHours = 0;
}
关于java - 数学值计算不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866028/