2013-10-11 73 views
0

python初學者的一個問題:在Python中查找百分比

任何人都知道20/200 * 100是10.但python說0!

檢查這個代碼:

print 20/200*100 

你知道爲什麼發生這種情況,如何解決這個問題?

+1

由於整數除法,這發生在Python 2中,但不是3。您可以將'from __future__ import division'放在文件的開頭,以獲得預期的行爲。 –

回答

0

爲什麼發生這種情況:

20/200 is 0.01 

0.01 -> int = 0 

0*100 = 0 

如何解決:

用途:

print float(20)/200*100 

或:

print 20.0*100/200 

但需要注意的是它不支持變量。

+3

'20 * 100/200'不是一個好的解決方案 - 想象一下,如果OP想要以百分比計算「21/200」,會發生什麼。另外,你只需要浮動分部中的一個浮點值。因此,float(20)/ 200 * 100'就足夠了。 – inspectorG4dget

+0

如果你使用常量,使用:20.0 * 100.0/200.0。 –

1

在Python2,/是截短的除法如果兩個參數都爲INT

可以只使用一個float文字而不是一個int轉換爲浮動

>>> 20/200.0*100 
10.0 

或100.0第一,如果乘其他兩個變量是INT

>>> 100.0*20/200 
10.0 
+0

很好的答案。但它不會支持變量。 –

+0

@Nandakumar,如果有幫助,你可以使用'100.0 * 20/200' –

0
print (20/float(200)*100) 

如果答案將是十進制數,則使用float(x)作爲分子或分母