【问题标题】:Convert String Object to Float Python将字符串对象转换为浮点 Python
【发布时间】:2016-06-08 19:16:59
【问题描述】:

我的代码:

else:
        revenue2 = revenue
        stripLastLetter = revenue[len(revenue)-1:len(revenue)]

        if stripLastLetter == "B":
            result = revenue2[:-1]
            revNum = float(result.replace(",", ""))
            final = revNum * 1000000000
            newnum = "{:0,.2f}".format(final)
            #print(newnum)
        elif stripLastLetter == "M":
            result = revenue2[:-1]
            revNum = float(result.replace(",", ""))
            final = revNum * 1000000
            newnum = "{:0,.2f}".format(final)
            #print(newnum)
        elif stripLastLetter == "K":
            result = revenue2[:-1]
            revNum = float(result.replace(",", ""))
            final = revNum * 1000
            newnum = "{:0,.2f}".format(final)
            #print(newnum)
        else:
            result = revenue2
            revNum = float(result.replace(",", ""))
            final = revNum
            newnum = "{:0,.2f}".format(final)
            #print(newnum)

        if float(newnum) > 50000000:
            print(ticker.upper()+newnum)
        else:
            None

运行时,我的“newnum”变量如下所示:“56,100,000,000.00”,但仍然是字符串。

在我的最后一个 if 语句中,我将 newnum 与一个 int 进行比较并得出一个错误:“无法将字符串转换为浮点数:'30,270,000,000.00'”

如何将 newnum 转换为 float/int 对象?

【问题讨论】:

    标签: string python-3.x casting int


    【解决方案1】:

    这里的问题是你的字符串中有逗号试试:

    newint = float(newnum.replace(',',''))
    

    【讨论】:

    • 但我的代码先去掉逗号,转换为浮点数,然后用 .format 函数添加逗号。此解决方案为我返回“无法将 'float' 对象隐式转换为 str”错误
    • 你能打印出你想转换的字符串吗,比如'print(newnum)'
    • 是的,打印效果很好
    • 但是它打印了什么...你试过我的解决方案了吗?您似乎正在使用格式函数将逗号添加回字符串(例如“{:0,.2f}”)
    • newnum 的“类型”是字符串,在将其转换为浮点数之前,您需要去掉逗号。只需将 "if float(newnum) > 50000000:" 更改为 "if float(newnum.replace(',','')) > 50000000:" 并检查它是否有效。
    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多