java - 数学值计算不正确

标签 java math system.out

出于某种原因,我得到的数学值与应有的不同。我在这里做错了什么?

代码:

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/

相关文章:

python - 导入错误 : cannot import name 'isclose'

language-agnostic - 每次发生之间具有随机(但有限)间隔的重复事件的预期周期是多少?

java - System.out.println 错误

java - 将输出流改回 system.out

java - Spring Security 然后部署 -> 404 错误

Java:不可解析的日期异常

java - Spring MVC 表单处理

algorithm - 查找 find a^s mod b

java - Cucumber:不允许扩展定义步骤定义或 Hook 的类

jsf - 将 JSF 错误重定向到日志文件