2017-07-23 67 views
1

如何将存储为字符串的负数转换为浮点数?Python将字符串转换为负数浮动错误

我在Python 3.6上遇到这个错误,不知道如何克服它。

>>> 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,你可以使用标准的'unicodedata'模块来获取每个字符串的行为神秘的名字。例如,如果字符串是'''do'import unicodedata as ud''print(* map(ud.name,s),sep =',')'。查看模块文档以获得更多漂亮的功能。当然,你可以执行'print(s.encode('unicode-escape'))' –

回答

11

您的字符串包含unicode en-dash,而不是ASCII连字符。你可以替换它:

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

如果你想显示差异,你可以在这里抛出[this](https://pastebin.com/hvm4yDpK)if你喜欢。 – idjaw

+1

@BrenBarn很好发现。我从PDF中复制了该值... – PedroA

相关问题