2017-08-18 37 views
-1

我只是遇到了一个很奇怪的问题:我试图将一个字符串漂浮再回到海峡此:ValueError异常:无效的文字浮法():“320”为一个普通的字符串

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

浮点字符只允许数字/小数点和尾随/空白字符(以及一些其他的东西,比如'inf'和'NaN'。引号会引发错误。 –

+0

看起来像字符串内容*包含引用* !? – deceze

+0

但是所有的错误信息和打印结果显示参数传递给float的是'320' – Ziu

回答

1

该问题可能是某种非打印字符存在于您正在使用的值中。它看起来像你使用Python 2.x中,在这种情况下,你可以用此查询到:

print repr(tmp[1]) 

您可能会发现在那里,转义形式\ x00的东西。这些非打印字符在您直接打印到控制台时不会显示出来,但它们的存在足以负面影响将字符串值解析为浮点数。

相关问题