这是我的代码:

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

它显示:

0.0%

但我想要33%

我该怎么办?


当前回答

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

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

细节:

%.0f表示“打印小数点后0位的浮点数”,所以是%。2f会输出33.33 %%打印文字%。比原来的+'%'更干净一点 1.0而不是1负责强制除法为float,因此不再有0.0

其他回答

那么你应该这样做:

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

0表示它们是浮点数,然后int()将它们四舍五入为整数。

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

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

细节:

%.0f表示“打印小数点后0位的浮点数”,所以是%。2f会输出33.33 %%打印文字%。比原来的+'%'更干净一点 1.0而不是1负责强制除法为float,因此不再有0.0

我用这个

ratio = round(1/3, 2) 
print(f"{ratio} %")

output: 0.33 %

只需添加python3 f-string解决方案

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

这就是我让它工作的方法,像魔法一样

divideing = a / b
percentage = divideing * 100
print(str(float(percentage))+"%")