我想將像“-2.676.15024”和“2.938.45500”這樣的字串轉換為浮點數?我的資料庫有一些這樣的例子,其中數字(字串)有千位和小數分隔符,具有相同的符號,在這些情況下是一個點。
uj5u.com熱心網友回復:
IIUC 要洗掉除最后一個以外的所有點。
您可以使用正則運算式:
import re
s = '-2.676.15024'
float(re.sub('\.(?=.*\.)', '', s))
輸出: -2676.15024
替代使用rsplit和join:
s = '-2.676.15024'
float('.'.join(map(lambda x: x.replace('.', ''), s.rsplit('.', 1))))
注意。這是假設總是有小數部分。如果不是,你必須澄清決定一個點是小數點還是千位分隔符的條件
uj5u.com熱心網友回復:
你可以試試
test = '-2.938.45500'
result = float(test.replace('.', '', test.count('.') - 1))
print(result)
uj5u.com熱心網友回復:
s='-2.676.15024'
index=s.find('.')
print(float(s[:index] s[index 1:]))
輸出:-2676.15024
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/367112.html
下一篇:如何在C中替換不同長度的子字串?
