python將科學計數法型數字的字串轉化為數字

2021-10-04 09:01:26 字數 697 閱讀 4509

之前由於需要讀取一些資料集裡的資訊,而這些資訊是存為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)

科學計數法

在做專案時發現乙個比較頭痛的問題,輸入法輸入金額android inputtype numberdecimal 控制項是可以輸入000.123的,為了獲取正確的輸入值可以使用下面方法,當輸入的資料很長時也不會被用科學計數法顯示 string str 000.123 bigdecimal bigdec...

python 不以科學計數法輸出

numpy不以科學計數法輸出np.set printoptions suppress true pandas不以科學計數法輸出,最大顯示無省略號行列 10 10 pd.set option display.max columns 10,display.max rows 10,display.floa...

科學計數法 20

時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 現以科學計數法的格式給出實數a,請編寫程式按普通數字表示法輸出a,並保證所有有效位都被保留。每個輸入包含1個測試用例,即乙個以科學計數法表示的實數a。該數字的儲存長度不超過9999...