将十进制转换为%

时间:2014-06-10 00:29:44

标签: python formatting decimal percentage

所以我看过这里的帖子: how to show Percentage in python并使用了解决方案。

S = 'ftp'
"{0:.0f}%".format(S.count('f') / 9 * 100)

所需的输出 11%,但是当我使用指定的格式运行代码时,我得到“0%”而不是我想要的11%。任何向正确方向的推动都会非常感激。

4 个答案:

答案 0 :(得分:1)

问题不在格式语句中,只是算术 - 你的整数除法使得S.count('f')/ 9返回0.将你的9改为9.0应该有效。

答案 1 :(得分:1)

如果要显示百分比,则应直接使用百分比格式化程序:

>>> '{:.0%}'.format(S.count('f') / 9)
'11%'

正如其他人已经注意到的,如果两个参数都是整数,Python 2将使用整数除法,所以你可以改为使常量变为浮点数:

>>> '{:.0%}'.format(S.count('f') / 9.)
'11%'

答案 2 :(得分:0)

它适用于Python 3但是对于Python 2,你需要至少一个浮点数来获得/

的浮点结果

你可以添加。 (点)到9有浮点数。

S = 'ftp'
"{0:.0f}%".format(S.count('f') / 9. * 100)

答案 3 :(得分:0)

这是因为(在Python 2中)你使用整数除法,其中3 / 9给你零。

您可以切换到浮点除法:

"{0:.0f}%".format(S.count('f') / 9.0 * 100)

你会看到为什么它在以下成绩单中起作用:

>>> 3/9
0

>>> 3/9.0
0.3333333333333333

或者,您可以重新安排操作,以便先倍增:

"{0:.0f}%".format(S.count('f') * 100 / 9)