python 无效的浮点字面量

2 投票
4 回答
21667 浏览
提问于 2025-04-15 14:07

我正在运行一段代码,目的是从一个大文件中选择一些片段。但是我遇到了一些奇怪的错误,错误信息是:

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

有没有人知道怎么解决这个问题?提前谢谢大家。

实际上,出错的语句是:

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

这个语句会产生错误。
'line_temp' 是一个字符串,
而 'line' 是打开的文件中的任意一行,也是一个字符串。

4 个回答

1

罗纳德,请再检查一下答案。它们是正确的。你现在做的是:float(EXPRESSION),而EXPRESSIO的结果是E-135。E-135不是float()函数可以接受的有效输入。我不太清楚“line_temp[line(line_temp)-1]”这个部分是干嘛的,但它返回的数据对float()函数来说是不正确的。

3

看起来你想把一个字符串转换成浮点数。如果这个字符串是E-135,那么它确实是一个无效的浮点数值。也许你在字符串的开头漏掉了一个数字,实际上应该是像1E-135这样的格式?那样的话,它就是一个有效的浮点数。

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吗?

关于浮点数的有效表示形式,可以在这里找到更多信息。

撰写回答