这是我的代码:
print str(float(1/3))+'%'
它显示:
0.0%
但我想要33%
我该怎么办?
这是我的代码:
print str(float(1/3))+'%'
它显示:
0.0%
但我想要33%
我该怎么办?
当前回答
只需添加python3 f-string解决方案
prob = 1.0/3.0
print(f"{prob:.0%}")
其他回答
只是为了完整起见,因为我注意到没有人建议这个简单的方法:
>>> print("%.0f%%" % (100 * 1.0/3))
33%
细节:
%.0f表示“打印小数点后0位的浮点数”,所以是%。2f会输出33.33 %%打印文字%。比原来的+'%'更干净一点 1.0而不是1负责强制除法为float,因此不再有0.0
这就是我让它工作的方法,像魔法一样
divideing = a / b
percentage = divideing * 100
print(str(float(percentage))+"%")
那么你应该这样做:
print str(int(1.0/3.0*100))+'%'
0表示它们是浮点数,然后int()将它们四舍五入为整数。
你将整数除法然后转换为浮点数。而是除以浮点数。
作为奖励,使用这里描述的很棒的字符串格式化方法: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%'
一个伟大的宝石!
我用这个
ratio = round(1/3, 2)
print(f"{ratio} %")
output: 0.33 %