You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现数字从右侧两位处添加逗号的方法求助

解决方案

你的核心问题是输入的整数369900实际代表的是3699.00(比如单位是分,需要转成元),但之前的代码直接把它当成了369900.00来处理,所以得到了不符合预期的结果。下面是两种可行的处理方式:

方法一:手动格式化(无需依赖locale)

直接将整数转换为对应小数后,替换小数点为逗号:

raw_price = 369900
# 除以100得到正确的小数数值,再格式化为两位小数,最后替换分隔符
formatted_price = f"{raw_price / 100:.2f}".replace('.', ',')
print(formatted_price)  # 输出:3699,00

方法二:使用locale模块(适合多语言场景)

先设置支持逗号作为小数分隔符的区域设置,再转换数值并格式化:

import locale

# 选择合适的区域设置(比如意大利语、法语等,根据你的系统支持情况调整)
locale.setlocale(locale.LC_ALL, 'it_IT.UTF-8')

raw_price = 369900
price_value = raw_price / 100
# 格式化时关闭千位分组,保留两位小数
formatted_price = locale.format_string("%.2f", price_value, grouping=False)
print(formatted_price)  # 输出:3699,00

为什么之前的代码不生效?

你用locale.currency时,输入的369900被识别为369900.00(完整货币金额),所以直接在末尾添加了,00。必须先把原始整数转换为正确的小数数值(除以100),再进行格式化才能得到想要的3699,00。

内容的提问来源于stack exchange,提问作者jelkaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 04:05:02