如何将字符串形式表示的数字按需求进行格式化处理?
价格字符串格式化实现方案
核心逻辑:这类固定长度的价格字符串默认最后2位为小数位,只需把字符串转换为数值后除以100,或直接在倒数第二位前插入小数点,再消除前导零即可。
1. Python 批量处理方案
适合需要自定义逻辑、处理复杂格式文本的场景:
- 单条转换函数
def format_price(price_str: str) -> float: # 方法1:数值转换法,自动消除前导零 return int(price_str) / 100 # 方法2:字符串切割法,适配非纯数字字符的特殊场景 # return float(f"{price_str[:-2]}.{price_str[-2:]}")
- 全量处理文本文件示例
# 处理每行存储一个价格的普通文本 with open("输入文件.txt", "r", encoding="utf-8") as f_in, open("输出文件.txt", "w", encoding="utf-8") as f_out: for line in f_in: raw_price = line.strip() if not raw_price: f_out.write(line) continue # 格式化后保留两位小数输出 f_out.write(f"{int(raw_price)/100:.2f}\n")
2. Excel/ WPS 表格方案
适合数据已经导入表格的场景,假设原始价格字符串存储在A列:
- 空白列输入公式:
=NUMBERVALUE(A1)/100 - 下拉填充整列后,设置单元格格式为「数值、保留2位小数」即可。
3. Shell 命令快速处理方案
适合Linux/macOS环境下快速处理纯文本文件:
- 处理每行一个价格的文本:
awk '{printf "%.2f\n", $0/100}' 源文件.txt > 结果文件.txt - 处理CSV格式文件(假设价格在第3列):
awk -F ',' '{OFS=","; $3=sprintf("%.2f", $3/100); print}' 源文件.csv > 结果文件.csv
内容的提问来源于stack exchange,提问作者Spyros Dekavallas
相关产品推荐
相关产品推荐

