2017-07-23 1 views
1

Wie konvertiert man eine negative Zahl als Zeichenfolge in einen Float gespeichert?Python Konvertieren Zeichenfolge zu float Fehler mit negativen Zahlen

Ich bekomme diesen Fehler auf Python 3.6 und weiß nicht, wie ich darüber hinwegkommen soll.

>>> s = '–1123.04' 
>>> float(s) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: could not convert string to float: '–1123.04' 
+2

FWIW, können Sie den Standard 'unicodedata' Modul verwenden den Namen jedes Zeichen in Zeichenfolge zu erhalten, die auf mysteriöse Weise zu verhalten hat. Wenn der String zum Beispiel 's' ist, importieren Sie unicodededata als ud'' print (* map (ud.name, s), sep = ',') '. Weitere nützliche Funktionen finden Sie in den Moduldokumenten. Und natürlich können Sie 'print (s.encode ('unicode-escape'))' –

Antwort

11

Ihre Zeichenfolge enthält einen Unicode-Bindestrich, keinen ASCII-Bindestrich. Man könnte es ersetzen:

>>> float('–1123.04'.replace('\U00002013', '-')) 
-1123.04 
+1

Sie können [this] (https://pastebin.com/hvm4yDpK) dort hineinwerfen, wenn Sie den Unterschied zeigen möchten, wenn du magst. – idjaw

+1

@BrenBarn gut entdeckt. Ich habe den Wert von einem PDF kopiert ... – PedroA

Verwandte Themen