如何为数字的小数部分添加千位分隔符(保留8位精度)
解决整数与小数部分均添加千位分隔符的问题
Python内置格式化语法中的_仅会给整数部分添加千位分隔符,无法直接处理小数部分,可通过拆分数字的整数、小数段分别处理后拼接的方式实现需求:
- 将Decimal类型的数字转为字符串,拆分出整数部分和小数部分
- 对整数部分用内置格式化添加下划线分隔
- 对小数部分按每三位一组拆分,用下划线连接各组
- 拼接处理后的整数、小数部分得到最终结果
示例代码:
from decimal import Decimal target_num = Decimal("100000.12345678") # 拆分整数与小数部分 int_segment, dec_segment = str(target_num).split('.') # 格式化整数部分 formatted_int = f"{int(int_segment):_}" # 格式化小数部分:每三位插入下划线 formatted_dec = '_'.join([dec_segment[i:i+3] for i in range(0, len(dec_segment), 3)]) # 拼接最终结果 final_result = f"{formatted_int}.{formatted_dec}" print(final_result) # 输出:100_000.123_456_78
该方法适配不同长度的小数部分,比如9位小数会自动生成为xxx_xxx_xxx的分隔格式。
内容的提问来源于stack exchange,提问作者Ferdinando M. Ametrano
相关产品推荐
相关产品推荐

