Python使用if语句计算加班总工资输出结果错误该如何解决
问题原因与修复方案
错误原因
你当前代码的逻辑错误为:当工作时长超过40小时时,将全部工作时长都按1.5倍时薪核算,不符合题目要求的「仅超出40小时的部分按1.5倍时薪计算、40小时以内部分仍按基础时薪计算」的规则。
以你使用的测试用例为例,原代码计算逻辑为:45 * 10.5 * 1.5 = 708.75,和你得到的错误输出完全一致。
正确核算逻辑
总薪资计算公式为:
- 工作时长≤40小时:总薪资 = 工作时长 * 基础时薪
- 工作时长>40小时:总薪资 = 40 * 基础时薪 + (工作时长 - 40) * 基础时薪 * 1.5
修正后代码
hours = input("Enter Hours:") rate = input("Enter rate:") # 转换为浮点型用于数值计算 hours = float(hours) rate = float(rate) if hours > 40: # 40小时基础薪资 + 超出部分1.5倍薪资 total = 40 * rate + (hours - 40) * rate * 1.5 else: total = hours * rate print(total)
结果验证
代入测试用例参数(45小时、时薪10.5)计算:40*10.5 + 5*10.5*1.5 = 420 + 78.75 = 498.75,完全符合预期输出。
内容的提问来源于stack exchange,提问作者Reuben Menezes
相关产品推荐
相关产品推荐

