我想在Python 2.7解釋器中使用它。爲什麼我在Python中得到這個0作爲答案(1/10)?
>>> print 1/10
0
>>> print float(1/10)
0.0
>>> print 1/5
0
>>> a = 1/5
>>> a
0
>>> float(a)
0.0
>>>
我想分割時的浮點數值。任何關於這個零輸出邏輯的想法,請讓我知道如何正確地做到這一點。
我想在Python 2.7解釋器中使用它。爲什麼我在Python中得到這個0作爲答案(1/10)?
>>> print 1/10
0
>>> print float(1/10)
0.0
>>> print 1/5
0
>>> a = 1/5
>>> a
0
>>> float(a)
0.0
>>>
我想分割時的浮點數值。任何關於這個零輸出邏輯的想法,請讓我知道如何正確地做到這一點。
浮動轉換正在發生之後的整數除法。試試這個:
>>> print(1.0/10)
0.1
你需要做的是這樣的:
print (1.0/10)
當你這樣做:
print 1/10
它正在評估爲0,因爲它是把它當作一個整數。
當你這樣做:
print float(1/10)
你拿的東西浮子內有()和evalute首先所以在本質上,你可以獲得:
print float(0)
這將是0.0
在Python 2.x中,默認/
表示整數(截斷)除法與兩個整數參數一起使用時。在Python 3.x中,/
總是意味着浮點數除法和//
總是表示整數除法。您可以使用下載的是Python 3.x的行爲2.X:
from __future__ import division
爲師運營商的充分討論見PEP 238。
整數除法1/10
返回整數0
。將整數0
轉換爲浮點型,僅返回0.0
。你需要做的是分開float和一個整數來獲得一個浮點數。這將工作。
>>> 1/10.0
0.1
或
結果integer
分裂
>>> 1.0/10
0.1
是integer
。
/(除法)和//(地板除法)運算得到的它們的參數的商 。數字參數首先轉換爲一個 通用類型。普通或長整數除法產生一個整數 相同的類型;其結果是,與應用於結果的 「地板」函數的數學分工
嘗試
>>> 1.0/5
0.20000000000000001
>>> 1/5.0
0.20000000000000001
>>>
你想要做以下:
(float (1)/10)
司在Python 2整數之間返回一個整數結果。 (在Python 3,它返回你可能期望一個float結果。)
爲了得到一個float結果,轉換成整數的至少一成浮動:
>>> print(1/10)
0
>>> print(1/float(10))
0.1
>>> print(float(1)/10)
0.1
>>> print(float(1)/float(10))
0.1
使用'打印1.0/10' – reclosedev 2012-02-26 05:58:55
[爲什麼這個分區不能在python中工作?](http://stackoverflow.com/questions/1787249/why-doesnt-this-division-work-in-python) – 2012-02-26 08:31:20