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

计算含加班费的Gross_pay时输出结果不符预期,请求排查原因

加班费计算代码错误分析与修正

问题根源

你的代码逻辑错误在于:加班工时被重复计算了正常工资。当前代码先把所有工时(包括加班的5小时)按正常时薪计算,再额外加上加班工时的1.5倍工资,相当于加班工时拿了2.5倍工资(1倍正常+1.5倍加班),这和常规加班费规则不符。

常规加班费逻辑是:

  • 40小时以内:按正常时薪计算
  • 超出40小时的部分:按1.5倍时薪计算

错误代码的计算过程(测试数据)

h = 45,r =10.50
# 正常工资部分:45*10.5 = 472.5
# 加班费:5*(10.5*1.5)=78.75
# 总工资:472.5+78.75=551.25

修正后的代码

写法一:分两部分计算(更直观)

hrs = input("Enter Hours:")
rate = input("Enter rate per hour:")
h = float(hrs)
r = float(rate)

if h > 40:
    # 40小时正常工资 + 超出部分1.5倍工资
    gross_pay = 40 * r + (h - 40) * r * 1.5
else:
    gross_pay = h * r

print(gross_pay)

写法二:基于正常工资补加班差额

hrs = input("Enter Hours:")
rate = input("Enter rate per hour:")
h = float(hrs)
r = float(rate)

gross_pay = h * r
if h > 40:
    # 加班部分多给0.5倍(因为已经算过1倍正常工资)
    overtime_extra = (h - 40) * r * 0.5
    gross_pay += overtime_extra

print(gross_pay)

修正后测试数据验证

代入hrs=45,rate=10.50:

  • 40*10.5 = 420
  • 5*(10.5*1.5)=78.75
  • 总工资:420+78.75=497.85,符合预期结果

内容的提问来源于stack exchange,提问作者Nicola Maganuco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:00:57