2013-06-24 38 views
0

此代碼打印17,但我希望使用浮點執行除法(所以它應該打印17.5)。我該如何強制該部門處於浮點狀態?在特殊情況下強制劃分爲Python中的浮點

math = 8 
physics = 9.5 
algebra = 7.50 
geometry = 10 

**print "My GPA is %d" % ((math + physics + algebra + geometry)/2)** 

回答

2

%d用於整數,浮點數爲使用%f。使用浮點數%d將只打印小數部分。

>>> print "My GPA is %f" % ((math + physics + algebra + geometry)/2) 
My GPA is 17.500000 

或:

>>> print "My GPA is %.1f" % ((math + physics + algebra + geometry)/2) 
My GPA is 17.5 

採用新樣式的字符串格式化:

>>> print "My GPA is {:.1f}" .format((math + physics + algebra + geometry)/2) 
My GPA is 17.5 

還要注意在py2.x整數除法截斷輸出,並返回一個整數。

要解決這個問題,您應該至少將其中一個操作數轉換爲浮點型。

>>> 3/2 
1 
>>> 3/float(2) 
1.5 
>>> 3/2. 
1.5 

或進口python3.x的divison

>>> from __future__ import division 
>>> 3/2 
1.5 
+0

也可能是值得一提的'從__future__進口division'的情況下,所有的分數都是整數,OP是使用Python 2.x版本 – Aya

相關問題