python float的文字无效

时间:2009-09-06 19:04:35

标签: python

我正在运行一个代码来从一个大文件中选择块。我收到了一些奇怪的错误

"Invalid literal for float(): E-135"

有人知道如何解决这个问题吗?提前谢谢。

实际上这是给我错误的陈述

float (line_temp[line(line_temp)-1]) 

此语句产生错误 line_temp是一个字符串 'line'是open中的任何一行,file也是一个字符串。

4 个答案:

答案 0 :(得分:6)

您需要在E前面加上一个数字,使其成为浮点数

的有效字符串表示形式
>>> float('1E-135')
1e-135
>>> float('E-135')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for float(): E-135

事实上,E-135应该代表哪个数字? 1x10^-135

浮点数的有效文字形式为here

答案 1 :(得分:3)

看起来您正在尝试将字符串转换为浮点数。如果字符串是E-135,那么它确实是一个无效的值,可以转换为float。也许你在字符串的开头砍掉一个数字,它真的应该是1E-135之类的东西?这将是一个有效的浮动。

答案 2 :(得分:1)

我建议您替换

float(x-y)

float(x) - float(y)

答案 3 :(得分:1)

罗纳德,请再次检查答案。他们是对的。 你正在做的是:float(EXPRESSION),其中EXPRESSION的结果是E-135。 E-135无法输入float()函数。我不知道“line_temp [line(line_temp)-1]”是做什么的,但它返回了float()函数的错误数据。