回答
format
是一個內置因爲Python 2.6:
>>> print "{0:.0f}%".format(1./3 * 100)
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%
'float(1)'比'1'更真pythonic嗎? – 2013-07-17 07:58:49
@TobiasKienzler,我不知道,如果它更pythonic。至少這是你在閱讀代碼時偶然發現的東西。我認爲用Python 3和* real * division默認情況下,這種刺激消失了。 – miku 2013-07-17 08:19:09
確實。我想知道爲什麼Guido從一開始就沒有實現真正的分割......將1/3舍入到0應該是[explicit](http://www.python.org/dev/peps/pep-0020/「Explicit is 「)畢竟...... – 2013-07-17 08:53:30
怎麼是這樣的:
print str(round(float(1.0/3.0) * 100) )[:2] + '%'
這[2]位將切下的結果.0。
已更新,以移除列表理解並調用round() – JeremyFromEarth 2011-03-15 02:22:29
回滾您的編輯 - round()比int()更合適 - 例如,考慮2.0/3.0。和列表理解,列表理解是什麼? – GreenMatt 2011-03-15 02:31:31
也許我使用了錯誤的術語,但是我認爲[:2]被認爲是列表理解,不是嗎? – JeremyFromEarth 2011-03-15 02:34:57
您將整數然後轉換爲浮動。取而代之的是花車。
作爲獎勵,使用這裏描述的真棒字符串格式化方法: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%'
一顆偉大的寶石!
然後,你想這樣做,而不是:
print str(int(1.0/3.0*100))+'%'
的.0
表示他們的花車和int()
之後他們再次輪爲整數。
我知道這是來自2011年,但是...... int()不輪。例如'int(1.9)!= 2'。舍入可以像這樣完成 - 'round(1.9,0)== 2' – owns 2016-04-26 18:12:16
'int()'肯定會舍入數字。我的例子正是我所要做的;切斷數字,因爲這是OP想要的。 – 2016-04-27 07:33:11
Stockoverflow是偉大的 - 幾年,仍然是一個迴應。謝謝。但是,爲了完整起見,我想澄清一下。 'int()'丟棄數字。它並沒有縮小。舍入意味着它對數字進行了一些操作。儘管最終的結果是一樣的;從這個意義上說,我明白你的觀點。此外,OP沒有說明他/她想要做什麼33.333 ...的數字是33回合。感謝您回覆我的評論,祝您有美好的一天! – owns 2016-04-30 15:43:46
只是爲了完整起見,因爲我發現沒有人提出這種簡單的方法:
>>> print "%.0f%%" % (100 * 1.0/3)
33%
詳情:
%.0f
代表「打印與0位小數一個浮動」 ,所以%.2f
將打印33.33
%%
打印文字%
。有一點比你原來的+'%'
1.0
而不是1
照顧強迫師的浮動清潔,所以沒有更多的0.0
備註:100.0 * 1/3 - > ok,100.0 *(1/3) - > 0.0不好 – mpgn 2015-02-13 23:05:54
@martialdidit:我意識到這一點,這就是爲什麼我的答案在* 1/3沒有括號'。評估順序是故意的:'100.0 * 1/3 => 100.0/3 => 0.33 ...' – MestreLion 2015-02-14 16:08:16
無論如何,我已經將強制從'100'移到了'1',以便說清楚。 – MestreLion 2015-02-14 16:13:55
有一種方法更方便「percent'格式化爲.format()
格式方法的選擇:
>>> '{:.1%}'.format(1/3.0)
'33.3%'
有沒有辦法做到這一點與舊學校''%.1f「'格式? – 2015-03-17 23:28:25
有點「不太方便」,但是,是的!像上面建議的那樣'print(「%。1f %%」%(100 * 1.0/3))' – Sebastian 2015-03-17 23:32:46
呵呵,所以沒有。沒有實際的%格式類型。 – 2015-03-18 18:00:26
只要把這樣的:
print '%.2f%%' % 24.689 # Double percentage sign
- 1. 如何在jqgrid中顯示百分比?
- 2. Python:顯示操作的百分比
- 3. 如何在Python中顯示數組的百分比
- 4. 如何以百分比顯示值?
- 5. 如何顯示商的百分比
- 6. SSRS百分比顯示
- 7. 百分比顯示問題
- 8. 顯示進度百分比
- 9. 如果折扣百分比大於零,如何顯示折扣百分比? PHP
- 10. 如何使用jQuery百分比滑塊顯示百分比結果
- 11. 顯示比例作爲百分比
- 12. 在javascript中顯示百分比圓弧
- 13. 在標籤中顯示百分比
- 14. 在目標C中顯示百分比
- 15. 百分比符號顯示在PHPExcel
- 16. 在ggplot中顯示百分比酒吧
- 17. 在WooCommerce中顯示折扣百分比
- 18. 在餅圖上顯示百分比值
- 19. rdlc:在餅圖上顯示百分比
- 20. 顯示:網格 - 百分比與分數
- 21. python的百分比
- 22. 將百分比格式化爲百分比以顯示在視圖中?
- 23. 顯示百分比但在圖表中沒有百分比嘆息
- 24. 如何在Python中的直方圖中顯示百分比標籤
- 25. 如何在谷歌圖表和正確的百分比顯示
- 26. 如何在magento中顯示售罄百分比
- 27. 如何顯示在jqplot圖表,而不是百分比
- 28. 如何在表單提交時顯示百分比?
- 29. 如何在我的圖表上懸停時顯示百分比?
- 30. 如何在Mathematica中獲取柱狀圖以顯示百分比?
int/int = int,int/float = float,flaot/int = float – AbiusX 2011-03-15 02:18:27
_Percent_表示_per hundred_。如果你有一個簡單的比例(在你的情況下是'1/3'),你必須有一個_per_的值,它必須乘以'100'來得到一個_percent_的值。看到整數和浮點數的區別的其他答案。 – Apalala 2011-03-16 14:08:34