2017-05-18 457 views
0

我有這樣計算的正常工作和Python返回我0.計算器不是蟒蛇

percentage = (17/20) * 100 

但是正確的答案是85,如何正確地做到這一點?

+0

'17/20'是整數除法,結果值爲0 –

+1

嘗試'百分比=(17./20)* 100' – kuro

+0

這是一個整數除法,所以'17/20 = 0'。你可以寫'(17.0/20.0)* 100.0'來強制它使用浮點數。 –

回答

4

在Python 2中,/運算符將進行整數除法,如果它的兩個參數都是整數。對於你的計算,17/200.85,但由於我們只處理整數,所以它被取整爲零。您可以通過將其中一個值轉換爲浮點數來解決此問題,可以使用構造函數float(),也可以通過將文字更改爲包含小數點(17.0/20,正如您所期望的那樣)。

這個問題不會出現在Python 3中,其中浮點除法是默認的(您必須使用//運算符來顯式請求「floor」除法)。如果需要,可以通過將from __future__ import division置於文件的頂部(在任何其他導入之前),在Python 2中獲得Python 3的行爲。

0

python2默認情況下使用divide'/'作爲int除法。 可能寫百分比=(17.0/20)* 100 或

from __future__import division 

,使其作爲浮動分裂工作。

0

如果你想擁有這個整數運算,可以隨時通過乘以100開始:

percentage = (17 * 100)/20 

這給你的中間結果17 * 100 = 1700,其將作爲一個整數1700/20 = 85

它很簡單,不會把你帶出整數境界。