这是我的代码:
print str(float(1/3))+'%'
它显示:
0.0%
但我希望得到33%
我能做什么。
答案 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%