如何在python中显示百分比

时间:2011-03-15 02:10:44

标签: python

这是我的代码:

print str(float(1/3))+'%'

它显示:

0.0%

但我希望得到33%

我能做什么。

9 个答案:

答案 0 :(得分:218)

format支持百分比floating point precision type

>>> print "{0:.0%}".format(1./3)
33%

如果您不想进行整数除法,可以从__future__导入Python3的除法:

>>> from __future__ import division
>>> 1 / 3
0.3333333333333333

# The above 33% example would could now be written without the explicit
# float conversion:
>>> print "{0:.0f}%".format(1/3 * 100)
33%

# Or even shorter using the format mini language:
>>> print "{:.0%}".format(1/3)
33%

答案 1 :(得分:147)

.format()格式方法有一种更方便的'百分比'格式选项:

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

答案 2 :(得分:54)

仅仅为了完整起见,我注意到没有人建议这个简单的方法:

>>> print("%.0f%%" % (100 * 1.0/3))
33%

详细说明:

  • %.0f代表“打印带小数点后0位数的浮动”,因此%.2f会打印33.33
  • %%打印文字%。比原来的+'%'
  • 更干净
  • 1.0代替1负责强制划分浮动,所以不再0.0

答案 3 :(得分:34)

您正在将整数除以转换为浮点数。除以花车代替。

作为奖励,请使用此处描述的令人敬畏的字符串格式化方法:http://docs.python.org/library/string.html#format-specification-mini-language

指定百分比转换和精确度。

>>> float(1) / float(3)
[Out] 0.33333333333333331

>>> 1.0/3.0
[Out] 0.33333333333333331

>>> '{0:.0%}'.format(1.0/3.0) # use string formatting to specify precision
[Out] '33%'

>>> '{percent:.2%}'.format(percent=1.0/3.0)
[Out] '33.33%'

一颗伟大的宝石!

答案 4 :(得分:6)

只需添加Python 3 f字符串解决方案

prob = 1.0/3.0
print(f"{prob:.0%}")

答案 5 :(得分:4)

然后你想要这样做:

print str(int(1.0/3.0*100))+'%'

.0将它们表示为浮点数,int()将它们再次转换为整数。

答案 6 :(得分:0)

就这样说:

print '%.2f%%' % 24.689 # Double percentage sign

答案 7 :(得分:-2)

这样的事情怎么样:

print str( round( float(1.0/3.0) * 100 )  )[:2] + '%'

这个[:2]位将从结果中切掉.0。

答案 8 :(得分:-3)

我就这样做了:

N = 1.0 / 3

打印'%。0f' %(100 * n)+ r'%'

[输出] 33%