標籤:

怎樣使python計算結果顯示小數?

我編程小白,前幾天開始學慣用python分析自然語言。但是發現教材上的from _future_ import division 在我的2.7.3上面不成功。我的計算結果都是整數,如3/5=0.要如何才能使運算結果顯示更精確的結果?


傳統整數除法會捨去小數部分,返回一個整型。如果操作數之一是浮點型,則執行真正的除法。

比如: &>&>&> 5/0.3

16.666666666666668

&>&>&> 3/float(5)

0.6


3/5是整數除法,返回結果也是整數,所以結果是0。這個不是隱藏了,是的確沒有。事實上不光python這樣處理,C/C++也都是這樣的,因為整數和浮點數本來就是兩回事,用來計算除法的部件也不是同一個。

如果想做浮點除法,就應該把至少一個操作數轉化為浮點型。最簡單的方法就是在後面加上.0,例如3.0/5。這裡3.0就自動是一個浮點數。當然也可以也可以用類型轉換的方法:(float)3/5。這樣做實際上是強制系統把整數3轉化為浮點數用,做除法時5也會自動被轉換為浮點數再進行除操作。


是from __future__ import division

不是from _future_ import division


改成 3.0/5


確定你們3/5都是0么?

就我特殊?


print({:.6f}.format(3/5)}


我也是初學,floa(5/3) floa(5)/3 5.0/3 5/3.0 後三個的效果一樣都是浮到小數點後10位,float(5/3),只整除之後強行再浮點,沒有實際作用,實際效果請看程序和運行結果。

print"Is it can be divided",3/5 #0

print"ok,again",5/3 #1

print"do it again",40/3 #1

print"what is fudia

print"Is it can be divided",3.0/5 #0

print"ok,again",5.0/3 #1

print"do it again",float(40)/3 #13

print"do it again",float(6/5)


不能直接用a./b么


推薦閱讀:

Day8,os模塊,時間戳
Stackoverflow上百萬的Python問題|最火的十個
使用Python建站對於日流量20w的pv你會採用什麼樣的架構?
R語言中不能進行深度學習?
巧妙使用 TensorFlow 之 TensorLayer

TAG:Python |