如何用Python .format方法实现带前导零的百分比格式化?
如何格式化带前导零的百分比
你遇到的问题是格式符里的总最小宽度设置过小,导致前导零无法显示。
先看你原来的代码:
print("{:+03.2%}".format(0.12345)) print("{:+0>3.2%}".format(0.12345))
这里的3是指定输出字符串的总最小宽度,但格式化后的+12.35%本身就有7个字符(+、1、2、.、3、5、%),远大于3,所以这个宽度限制根本不起作用,自然不会补前导零。
要得到+012.35%,需要把总最小宽度设为8(符号1位 + 前导零1位 + 整数2位 + 小数点1位 + 小数2位 + 百分号1位 = 8),同时保留0填充和+符号的设置。
正确的代码如下:
print("{:+08.2%}".format(0.12345))
运行后会输出预期的+012.35%。
如果是负数,比如-0.12345,用同样的格式符会输出-012.35%,也能满足带前导零的需求。
内容的提问来源于stack exchange,提问作者Nivatius
相关产品推荐
相关产品推荐

