当我尝试以小时数输入10.8时,我收到值错误。为什么我不能输入浮点值并将其转换为int?
def computepay(hours,rate):
try:
hours=int(hours)
rate=float(rate)
if hours > 40:
payment = 40 * rate # Standard Payment until 40 Hours
payment = payment + rate *(hours-40) * 1.5 # + the rest which has more rate
print("Pay:",payment)
else:
payment=hours*rate
print("Pay:", payment) # Otherwise Normal Payment
except:
print("Value error")
hours=input("Enter hours:")
rate=input("Enter Rate:")
computepay(hours,rate)
这只是因为int()
无法转换不代表整数的字符串。当输入以字符串形式返回时,我建议您先将其传递给float()
。
所以:hours = int(float(hours))
。
我无法理解代码,但看起来你正在将string
值直接传递给方法。 input()
返回一个字符串。在你的情况下,输入10.8会产生一个
ValueError,基数为10的无效文字。
您应该做的是将输入转换为浮点数,然后将其传递给您的函数。做这样的事情。
hours = float(input("Enter hours:"))
rate = float(input("Enter Rate:"))
computepay(hours,rate)