python将科学计数法型数字的字符串转化为数字

python将科学计数法型数字的字符串转化为数字

前言

之前由于需要读取一些数据集里的信息,而这些信息是存为txt文件,读取之后是字符串。数据本来全部都是数字。只不过用科学计数法表示的,使用int,float强转会报错。在网上稍微查了一下,也没找到啥好办法。后来,刚好看到一本书,提到了一个函数。转化起来很简单。

法一

eval('1.23456789e+5')

输出:

123456.789

法二(刚开始的笨做法)

按照科学计数法的格式进行字符串分割,分成底数和指数部分,变为数字后再相乘。

def str2num(string):

    try:
        # 如果是按照科学计数法记录的字符串
        temp = string.split('+')

        base, index = temp[0], temp[1]
        base = base.split('e')[0]

        return float(base)*(10**int(index))
    except:
        # 如果不是科学计数法记录的,而是直接记的数,如100这样偶尔出现的不规范数据
        return float(string)
    
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值