如何打印百分比值?

279 投票
8 回答
570199 浏览
提问于 2025-04-16 13:42

给定一个在0到1之间的小数,怎么把它打印成百分比呢?

比如说,1/3 应该显示为 33%

8 个回答

95

这里补充一个使用Python 3的f-string解决方案

prob = 1.0/3.0
print(f"{prob:.0%}")  # 33%
print(f"{prob:.2%}")  # 33.33%
223

有一种更方便的“百分比”格式化选项,可以用在.format()这个格式化方法里:

>>> '{:.1%}'.format(1/3.0)
'33.3%'
403

自从Python 3.0开始,str.formatformat就支持一种叫做百分比表示法

>>> f"{1/3:.0%}"
'33%'
>>> "{:.0%}".format(1/3)
'33%'
>>> format(1/3, ".0%")
'33%'

百分比。它会把数字乘以100,然后以固定的格式('f')显示,最后加上一个百分号。

格式说明中的.0部分表示你希望小数点后没有数字,因为如果你用f"{1/3:%}",你会得到字符串'33.333333%'

这个功能适用于整数、浮点数和小数。详细信息可以查看PEP 3101

撰写回答