繁体   English   中英

在Python中解析表示带*浮点数的字符串

[英]Parsing a string representing a float *with an exponent* in Python

我有一个很大的文件,数字形式为6,52353753563E-7 因此,该字符串中有一个指数。 float()在此死亡。

虽然我可以编写自定义代码来将字符串预处理为float()可以食用的东西,但我正在寻找将这些字符串转换为float的pythonic方式(类似于在某处传递的格式字符串)。 我必须说让我感到惊讶的是float()不能处理如此指数的字符串,这是很常见的东西。

我正在使用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()

您的问题不在指数中,而是在逗号中。 使用python 3.1:

>>> a = "6.52353753563E-7"
>>> float(a)
6.52353753563e-07

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM