You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:39:02