我有一個包含6,52353753563E-7
形式的數字的大文件。所以這個字符串中有一個指數。 float()
就此死亡。雖然我可以編寫自定義代碼來將字符串預處理爲float()
可以吃的東西,但我正在尋找將這些轉換爲float的pythonic方式(類似於傳遞到某處的格式字符串)。我必須說我很驚訝float()
不能處理這樣一個指數的字符串,這是很常見的東西。在Python中解析表示具有指數*的浮點數*的字符串
我使用python 2.6,但如果需要的話,3.1是一個選項。
我有一個包含6,52353753563E-7
形式的數字的大文件。所以這個字符串中有一個指數。 float()
就此死亡。雖然我可以編寫自定義代碼來將字符串預處理爲float()
可以吃的東西,但我正在尋找將這些轉換爲float的pythonic方式(類似於傳遞到某處的格式字符串)。我必須說我很驚訝float()
不能處理這樣一個指數的字符串,這是很常見的東西。在Python中解析表示具有指數*的浮點數*的字符串
我使用python 2.6,但如果需要的話,3.1是一個選項。
與指數無關。問題是逗號而不是小數點。
>>> 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()
你的問題不是在指數卻在逗號。 with python 3.1:
>>> a = "6.52353753563E-7"
>>> float(a)
6.52353753563e-07
正確。順便提一下,如果在Python提示符中輸入「6,52353753563E-7」,它將被解析爲元組(6,5235.3753563) - 這很明顯,爲什麼它看起來很奇怪。 – 2010-05-12 22:47:40
啊,謝謝。當計時器讓我時,我會將其標記爲已接受。 – Lucas 2010-05-12 22:47:53
在相關說明中,我可以以某種方式讓python識別逗號嗎? C#和Java可以做到這一點。世界上許多地方都使用逗號作爲小數點分隔符。 – Lucas 2010-05-12 22:50:33