2012-09-07 57 views
1

Python是表現出奇怪的行爲,我之前didnt見證,不知道我做了什麼或者發生了什麼事,但基本上它不帶殼與小數 如果要是我我鍵入簡單Python中沒有顯示小數

>>> 2/3 
0 
>>> 3/2 
1 

操作嘗試格式化通過%或格式()它沒有什麼作用,基本上它只是不承認任何小數

>>> a =2/3 
>>> a 
0 
>>> format(a, '.5f') 
'0.00000' 

我需要一個簡單的劃分爲我的代碼檢查的東西,突然間我遇到過的東西作爲bizzare,因爲這

我使用Python 2.7

回答

7

在Python 2中,/默認執行「整數除法」。如果你把

from __future__ import division 

在腳本的頂部,它會做你想要的分工,這將是在Python 3或者默認的行爲,如果你想繼續使用舊的Python版本(不推薦兼容新的代碼),做

2./3. 

,或者使用變量

x/float(y) 
+0

非常感謝!這解釋了我的麻煩,但導入函數導致錯誤,但浮動()的作品! – rodling

+0

@ user1575088:導入必須在腳本的頂部完成。 –

2

您要執行的操作完全的整數,這意味着數的小數部分被丟棄。您需要使用類似2.0/3的東西,因此將使用浮點運算。

2

a = 2/3。

一個= 2./3

至少一個數量需要的浮子!