我正在运行一个代码来从一个大文件中选择块。我收到了一些奇怪的错误
"Invalid literal for float(): E-135"
有人知道如何解决这个问题吗?提前谢谢。
实际上这是给我错误的陈述
float (line_temp[line(line_temp)-1])
此语句产生错误 line_temp是一个字符串 'line'是open中的任何一行,file也是一个字符串。
答案 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)