gpt4 book ai didi

Python错误的乘法结果

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:01 24 4
gpt4 key购买 nike

def Calc_Salary(x,y):
Pay = x*y
return Pay
def Calc_with_bonus(c,d):
bonus = c+d
return bonus
hours = raw_input('Number of hours')
rate = raw_input('Rate per hour')
if hours >= 40:
extras = ((float(hours)-40)*float(rate)*1.5)
regular = float(rate)*40
print Calc_with_bonus(extras,regular)
elif hours < 40:
print Calc_Salary(hours,rate)
raw_input()

请帮忙,我已经检查了程序很多次,一切似乎都是正确的。当小时数超过 40 小时时,它将计算超过 40 小时的奖金和不超过 40 小时的常规费率,将它们相加并给出正确的结果。但是,如果小时数小于 40,它所要做的就是调用 Calc_Salary 并乘以它所做的 hours*rate,但是例如,如果您输入 hours=10*rate =10 而不是 100 它计算 -50 请帮忙 :(

最佳答案

问题是 hoursrate 是字符串,当你将它们与整数 40 进行比较时,它们总是更大,所以即使您输入 hours 作为 10 ,您最终进入 if block ,并且它正在尝试计算薪水,就好像小时数大于40. 字符串总是大于 int 的例子 -

>>> '10' > 123123123
True

不要在比较之后将数字转换为float,您应该在输入时直接将它们转换为float。示例 -

hours = float(raw_input('Number of hours'))
rate = float(raw_input('Rate per hour'))

在此之后,您不需要在 if block 中将 hours/rate 转换为 float

关于Python错误的乘法结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com