我有一个大号文件,其中包含6,52353753563E-7
形式的数字。所以在那个字符串中有一个指数。 float()
死于此。
虽然我可以编写自定义代码来预处理字符串到float()
可以吃的东西,但我正在寻找将这些转换为浮点数的pythonic方法(类似于传递到某处的格式字符串)。我必须说我很惊讶float()
无法使用这样的指数来处理字符串,这是非常常见的事情。
我正在使用python 2.6,但如果需要,3.1是一个选项。
答案 0 :(得分:13)
与指数无关。问题是逗号而不是小数点。
>>> float("6,52353753563E-7")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): 6,52353753563E-7
>>> float("6.52353753563E-7")
6.5235375356299998e-07
有关一般方法,请参阅locale.atof()
答案 1 :(得分:1)
您的问题不在指数中,而在逗号中。 使用python 3.1:
>>> a = "6.52353753563E-7"
>>> float(a)
6.52353753563e-07