如果我输入一个浮点值并尝试将其转换为int,我会收到错误

问题描述 投票:-2回答:2

当我尝试以小时数输入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)
python
2个回答
2
投票

这只是因为int()无法转换不代表整数的字符串。当输入以字符串形式返回时,我建议您先将其传递给float()

所以:hours = int(float(hours))


0
投票

我无法理解代码,但看起来你正在将string值直接传递给方法。 input()返回一个字符串。在你的情况下,输入10.8会产生一个

ValueError,基数为10的无效文字。

您应该做的是将输入转换为浮点数,然后将其传递给您的函数。做这样的事情。

hours = float(input("Enter hours:"))
rate = float(input("Enter Rate:"))
computepay(hours,rate)
© www.soinside.com 2019 - 2024. All rights reserved.