ValueError:float()的文字无效:" 320"对于普通字符串

时间:2017-08-18 08:05:05

标签: python

我刚刚遇到一个非常奇怪的问题:我尝试将一个字符串转换为float,然后返回str:

str(float(tmp[1])/100) # tmp[1] contain the str

但它抛弃了ValueError: invalid literal for float(): "320"

所以我试试这个:

            try:
                line_split[list_index] = str(float(tmp[1])/100)
            except:
                print >> sys.stderr, repr(tmp[1])

此外,同样的错误,并打印'"320"'

有任何帮助吗?谢谢!

1 个答案:

答案 0 :(得分:1)

问题可能是您正在使用的值中出现的某种非打印字符。看起来你正在使用Python 2.x,在这种情况下你可以用它来检查它们:

print repr(tmp[1])

你可能会看到那些以#x00形式转义的东西。直接打印到控制台时,这些非打印字符不会显示,但它们的存在足以对将字符串值解析为浮点数产生负面影响。