如何将0.9M更改为浮点数Python3?

是否有一个Python3库将字符串数的缩写形式:10K,0.2M,32B等转换为浮点数?

例如:10K => 10000 0.9M => 9000000,依此类推。

如果没有图书馆,转换这些数字的有效方法是什么?

**我试图从字母上拆分数字,但仅适用于int而不适用于double。

test_str = "9M"
temp = re.compile("([0-9]+)([a-zA-Z]+)")
res = temp.match(test_str).groups()

更多信息:我以这种方式从客户端获取该号码,无法更改。需要浮点数才能进行后期计算

谢谢 !

评论
兰Oo
兰Oo

您可以像这样不使用正则表达式来执行此操作,形成单位和字符串操作的字典:

units = {"K": 1000, "M": 1000000}

val = units.get(x[-1])
if val:
    print(float(x[:-1]) * val)

where, x is your test string.

点赞
评论