2012-04-29 62 views
3

在Objective-C(Xcode)和Python(終端)中試過並且(1/6)*(66.900009-62.852596)兩次計算爲零。任何人都知道這是爲什麼?它不應該是0.26246嗎?爲什麼「(1/6)*(66.900009-62.852596)」評估爲零?

+5

請注意,在Python 3.x中,這是不正確的。 '/'是默認的除法,所以你可以得到預期的結果。你也可以通過'from __future__ import division'來模擬Python 2.x。 –

+0

只是FYI,除了下面的答案外,你甚至不需要尾隨的零:'(1./6)'或'(1/6。)'就可以工作。 – alan

+0

謝謝,從來沒有試過這個! –

回答

11

您正在做整數運算1/6,而1/6的底線是0。改爲嘗試1.0/6

+0

啊謝謝,這是做到了。傻我。 –

3

1/6是整數除法,它變爲0.嘗試使用1.0/6代替。

2

的避免做偶然的地板師帶整數進口,在您的模塊的頂部做一個from __future__ import division

>>> from __future__ import division 
>>> (1/6)*(66.900009-62.852596) 
0.6745688333333331 

future module負責將默認在Python 3

橫空出世啓用功能