当前位置: 首页 > 面试题库 >

在Python中将字符串(具有科学计数法)转换为int

酆乐湛
2023-03-14
问题内容

我正在尝试将一组字符串从txt文件转换为列表中的int。我能够找到一个不错的代码片段来返回每一行,然后我尝试将其转换为int。问题是数字采用科学计数法,并且出现以下错误:ValueError:int()的无效文字,基数为10:‘3.404788e-001’。

这是我一直在处理的代码

data = []
rawText = open ("data.txt","r")

for line in rawText.readlines():
    for i in line.split():
        data.append(int(i))

print data[1]
rawText.close()

问题答案:

float(i)decimal.Decimal(i)用作浮点数,具体取决于保持精度对您的重要性。
float将数字存储在机器精度的IEEE浮点数中,同时Decimal保持完整的精度,但代价是速度较慢。
此外,您可以遍历打开的文件,而无需使用readlines()
列表理解可以满足您的所有需求:


data = [float(number)
        for line in open('data.txt', 'r')
        for number in line.split()]

如果您确实只需要整数,则可以使用 int(float(number))



 类似资料:
  • 问题内容: 遇到一个问题,我的JSON数据以科学计数法而不是浮点数打印。 打印以下值;。我需要它是一个浮点数,小数点后有8个字符(0.00001370) 如您在此处看到的-> http://i.imgur.com/FCVM1UN.jpg,我的GUI显示正确的第一行(使用完全相同的代码)。 问题答案: 您正在查看浮点数的 默认格式,其中科学计数法用于足够小的数字或大的数字。 您无需进行转换,该 值本

  • 问题内容: 有一个类似的问题,所以建议使用NumberFormat,这是我所做的。 我正在使用NumberFormat的parse()方法。 我得到的结果是 1.93 我真的没想到这会起作用,因为1.930000000000E + 02是一个看起来非常不寻常的数字,我是否必须先进行一些字符串解析才能删除零?还是有一种快速而优雅的方法? 问题答案: 当对科学计数形式的表达式使用DecimalForm

  • 问题内容: 如何将科学计数法转换为常规int例如:1.23E2我想将其转换为123 谢谢。 问题答案: 如果您具有字符串形式的值,则可以使用

  • 很多问题都解决了这个问题,但没有一个解决方案能完全满足我的需要。 我有一个数据框,有两列数字,每列10-20位。这些实际上是ID,我想将它们连接起来。看起来最好先将值转换为字符串。 然而,当使用转换时,熊猫保留了科学符号,这是不会飞的。 我尝试过的事情: 尝试:dtype arg('str')或转换器(使用)在 结果:

  • 问题内容: 一开始我没有清楚地解释我的问题。在python中将json转换为字符串时,请尝试使用和。 我的问题是: 我的预期输出: 我的预期输出: 对我来说,不必再次将输出字符串更改为json(dict)。 这该怎么做? 问题答案: 不仅仅是从Python对象中生成一个 字符串 ,它还会在Type Conversion Table 之后始终生成一个 有效的 JSON字符串(假设对象内部的所有内容都

  • 问题内容: 有没有人能将不安全的字符串转换为? 该字符串通常回来为:或类似的东西。 在这种情况下,我要。如果我想。我从不希望该方法失败,但是我不愿意尝试,除非通过它只是为了隐藏错误(以防万一发生极端情况)。 问题答案: 在这种情况下,您确实有一种避免/的方法,尽管我不建议这样做(假设您的输入字符串名为,并且您处于必须返回某些内容的函数中): 将在部分就是你回什么是你想要比如说,如果是,空,全空间,