如何将带有K、M单位后缀的数字字符串转换为完整整数
数值单位转整数实现方案
核心思路
一共四步即可覆盖所有你提到的格式变体:
- 预处理:先把爬取到的文本按行拆分,每行去除首尾的空格、换行等空白字符,过滤掉空行
- 拆分字段:每行最后一位为单位位,单独提取出来,剩余内容为数字部分,转成浮点数
- 倍率计算:按照单位匹配对应的倍率(K对应1000,M对应1000000),用浮点数乘以倍率
- 转整数:计算结果直接转整数即可,你给出的所有场景的数值乘以倍率后都无小数余数,不会有精度损失
Python实现示例
直接复制即可运行,适配你提到的所有格式变体,也兼容小写的k/m单位:
# 此处替换为你实际爬取到的文本 raw_content = """1.15M 3.75M 1.7M 4.19M 1.81M 351.65K 1.5K 23.2K 25.254M """ unit_multiplier = { "K": 1000, "M": 1000000 } result_list = [] for line in raw_content.strip().split("\n"): line = line.strip() if not line: continue # 提取单位和数值 unit = line[-1].upper() number_value = float(line[:-1]) # 计算完整整数 full_int = int(number_value * unit_multiplier[unit]) result_list.append(full_int) # 输出结果 for item in result_list: print(item)
扩展说明
如果后续遇到其他单位(比如G代表十亿),只需要在unit_multiplier字典里新增对应的键值对即可,不需要修改核心逻辑。如果遇到不带单位的纯数字行,补充一个单位判断分支,直接转整数即可。
内容的提问来源于stack exchange,提问作者exec85
相关产品推荐
相关产品推荐

