2017-08-18 63 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的東西。這些非打印字符在您直接打印到控制檯時不會顯示出來,但它們的存在足以負面影響將字符串值解析爲浮點數。

相關問題