【问题标题】:Printing % from division in Python在 Python 中打印除法百分比
【发布时间】:2014-12-12 17:01:45
【问题描述】:

我正在使用以下来产生百分比:

L = ['aa', 'bb']

for row, each in enumerate(l):
    percent = float(row)/150 * 100
    print "{0:.0f}%".format(percent)

我想要的是分别有“0%”和“0.67%”但是它给出“0%”和“1%”。

如何改正?

【问题讨论】:

  • 应该是enumerate(L): 并使用这个打印{0:.2f}%".format(percent)

标签: python string format


【解决方案1】:

来自官方documentation

'f' - 定点。将数字显示为定点数。默认精度为 6。

...

精度是一个十进制数,表示用“f”和“F”格式化的浮点值的小数点后应显示多少位,..

所以你可以在小数点后说出你想要多少位数。

>>> "{0:.2f}%".format(123.4567)
'123.46%'
>>> 
>>> "{0:.5f}%".format(123.4567)
'123.45670%'

所以把它改成:"{0:.2f}%".format(percent),而且你的 for 循环行中有一个错字,应该是enumerate(L)

L = ['aa', 'bb']

for row, each in enumerate(L):
    percent = float(row)/150 * 100
    print "{0:.2f}%".format(percent)

打印

0.00%
0.67%

【讨论】:

  • 感谢 avi。如果你的来得早,我不能,所以我选择上面的。如果您不满意,请告诉我。
  • 是的,我确实是先发帖的,但您可以自行标记(:
【解决方案2】:

你需要说出你想要小数点后多少位数。

for row, each in enumerate(L):
    percent = float(row)/150 * 100
    print "{0:.02f}%".format(percent)

输出:-

0.00%
0.67%

print "{0:.02f}%".format(percent)

输出:- 0.667%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2022-06-18
    • 1970-01-01
    相关资源
    最近更新 更多