2012-01-27 70 views
0

那麼我無法打印帶小數點的數字。 當我運行python並要求它做一個除法,其中結果必須是一個帶小數點的數字,它不打印小數點。 舉例來說,我剛纔提出這個算法:帶小數點的打印號碼

print 'Report card calculation' 
grade1 = input ('Insert the first grade: ') 
grade2 = input ('Insert the second grade: ') 
grade3 = input ('Insrt the third grade: ') 

media = (grade1 + grade2 + grade3)/3 
print 'Your final result is', media 

但是,當它打印了「媒體」,它應該有一個小數點不拿出一個小數點的數量。我該如何解決它?

+0

是什麼你的投入?他們是整數嗎? – 2012-01-27 20:32:13

回答

2

最簡單的變化:除以的3.0代替3

media = (grade1 + grade2 + grade3)/3.0 

這將確保分配給media值將是浮點即使三級變量持有整數。

+0

Humm ...明白了。這對我來說非常合適。 Thaks。 – 2012-01-27 20:44:06

2

在你的文件的頂部添加:

from __future__ import division 

,或者使用3.0而不是3在Python 2,劃分兩個整數總是產生一個整數。

1

您的操作是作爲整數除法處理的,請嘗試使用3.0代替3,看看會發生什麼。

1

當你在Python 2.x中劃分兩個整數時,結果將是一個整數。從文檔上Numeric Types

對於(普通或長)整數除法,其結果是一個整數。結果總是向負無窮大舍入:1/2是0,(-1)/ 2是-1,1 /( - 2)是-1,(-1)/( - 2)是0.請注意,如果任一操作數是長整型,則結果爲長整數,無論​​數值如何。

爲了得到你想要的行爲,無論是添加from __future__ import division到您的模塊的頂部使用Python 3 division behavior,或改變一個分子或分母(或兩者)爲float:

# either of the following would work 
media = float(grade1 + grade2 + grade3)/3 
media = (grade1 + grade2 + grade3)/3.0