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)
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章