当我调用输入为十进制的int(input())时,为什么会出现错误(例如'87 .94')?

cra*_*ice 0 python math multiplication

我是一个编程新手,在Python乘法方面有困难.我有这样的代码:

def getPriceDiscount():
    price = int(input())
    if price > 3000:
        priceDiscount = price * 0.6
        return priceDiscount
    else:
        return price
Run Code Online (Sandbox Code Playgroud)

但是当我执行它并输入一个像87.94这样的十进制数字的输入时,我收到以下错误:

ValueError: invalid literal for int() with base 10: '87.94'
Run Code Online (Sandbox Code Playgroud)

是不是该int()方法能够将字符串'87 .94'转换为允许我将其乘以0.6的数字?我该怎么做才能执行转换?

我正在使用Python 3.2.2.

dan*_*007 5

实际上,您可以将浮点值传递给int().在这种情况下,int()只需将数字向下舍入并将该值转换为整数类型.

但是,您在调用时正在执行的操作int("87.94")是将类似小数点值的字符串传递给int().int()不能直接从这样的字符串转换为整数.因此float(),您必须使用,它可以从字符串转换为浮点数.