我刚刚遇到一个非常奇怪的问题:我尝试将一个字符串转换为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"'
有任何帮助吗?谢谢!
答案 0 :(得分:1)
问题可能是您正在使用的值中出现的某种非打印字符。看起来你正在使用Python 2.x,在这种情况下你可以用它来检查它们:
print repr(tmp[1])
你可能会看到那些以#x00形式转义的东西。直接打印到控制台时,这些非打印字符不会显示,但它们的存在足以对将字符串值解析为浮点数产生负面影响。