将科学计数法字符串转换为整数

时间:2018-11-19 16:44:54

标签: string python-3.x type-conversion integer scientific-notation

我在Python 3.7中有一个问题。我正在打开一个文本文件(input.txt),并从该文本文件的各行中创建变量。例如,我的文本文件如下所示:

Case1
P
1.00E+02
5.

我需要创建变量,以便:

title = "Case1"
area = "P"
distance = 100
factor = 5

到目前为止,这就是我所拥有的:

f = open('C:\\input.txt',"r")
title = f.readline().strip()
area = f.readline().strip()
distance = f.readline().strip()
factor = f.readline().strip().strip(".")
f.close
print(title)
print(area)
print(distance)
print(factor)

结果为:

Case1
P
1.00E+02
5

如何使距离变量显示为100,而不是1.00E + 02?

我发现下面的链接认为这会有所帮助,但无法从那里解决我的问题。这是我的大型程序中的一小部分,已简化,但是如果在这里工作,它将满足我的需求。我的程序需要打开一个生成的文本文件并生成另一个文本文件,因此科学符号号将在1.00E-06和1.00E + 03之间更改。生成的文本文件需要将这些数字作为整数(即​​介于0.000001和1000之间)。感谢您的帮助!

Here

1 个答案:

答案 0 :(得分:1)

您发布的链接实际上给出了答案,尽管是回旋方式。 int()无法解析尚未表示整数的字符串。 但是科学数字是浮点数。

因此,您需要先将其强制转换为浮动以解析字符串。

尝试:

print(float(distance))

对于带有更多小数的数字(例如您的1.00E-06示例),您可以一直强制使用浮点符号。试试:

print(format(float(distance), 'f'))

如果只需要一定数量的小数,请尝试:

print(format(float(distance), '.2f'))  

(例如)