Python中如何为大数字添加千分位逗号并去除末尾多余零
问题原因
你现有的代码存在两个明显问题:
- 小数格式化写法错误:
"{:2f}"少了小数点,实际会默认保留6位小数,才会出现.600000的多余零 - 千分位格式化和小数格式化分开处理,最终打印时只用了没有加千分位的
format_2,所以输出没有逗号
解决方案
方案1:固定保留2位小数(薪资场景常用)
薪资通常默认保留两位小数,哪怕末尾是0,直接把千分位逗号和小数位数控制合并到同一个格式化串即可:
calculation = (hourly_rate * hours) * 52 # 同时实现千分位逗号 + 固定保留2位小数 salary_formatted = "{:,.2f}".format(calculation) print("{0}, your average salary for the {1} job, is ${2} per year.".format(name, occupation, salary_formatted))
代入你给出的13.65 * 32 * 52计算结果,输出为$22,713.60,符合常规薪资显示要求(你描述里的$22,713.06属于手误)。
方案2:自动去除末尾多余的零
如果要求末尾无意义的零必须删掉,比如22713.6显示为22,713.6,整数结果显示为22,713,可以对格式化后的结果做二次处理:
calculation = (hourly_rate * hours) * 52 salary_formatted = "{:,.2f}".format(calculation).rstrip('0').rstrip('.') print("{0}, your average salary for the {1} job, is ${2} per year.".format(name, occupation, salary_formatted))
内容的提问来源于stack exchange,提问作者Amar Mujak
相关产品推荐
相关产品推荐

