2012-09-11 54 views

回答

8

他們只是使用一個小數,然後用分號來確保結果是一個float而不是int。這避免了以下問題:

>>> 1/3 
0 
>>> 1./3 
0.3333333333333333 
+3

爲什麼2 downvotes? –

+2

我相信因爲你沒有正確解釋,它只是'(1)/(cos(lat))',其中'1.'只是浮點數'1.0'。 – Archie

2

它使1爲浮點值。相當於float(1)

隨着兩個整數,該/是地板功能:

>>> 12/5 
2 

帶一個參數的浮動,因爲你期望/行爲:

>>> 12.0/5 
2.4 
>>> 12/5.0 
2.4 

恕我直言,你的代碼發佈如果用這種方式編寫的話,這種方式不太模糊(使用Python)

secLat = 1.0/cos(lat) 

或者

secLat = float(1)/cos(lat) 

或者

secLat = 1/cos(lat)  

由於math.cos()返回一個浮點數,你可以在上面使用一個整數。

如果你想Python中有一個「true division」類似的Perl/PHP,你這樣做是這樣的:

>>> from __future__ import division 
>>> 1/2 
0.5 
+0

爲什麼隨機投票? –

+1

我沒有downvote,但你不必擔心它在Python中:'1/cos(lat)'即使在Python中也能正常工作,因爲cos()返回一個浮點數,你只需要一個浮點操作數強制浮點除法。或者使用Python(3.x)的最新版本默認獲得浮點除法。 – Duncan

+0

@Duncan:感謝您的評論,我改變了帖子以反映。 –

11

您正在閱讀的是錯了,我很害怕;它是:

(1.)/cos(lat) 

所以,通過latcos()除法浮點值1.0(其中省略了零)。

+3

這是嘗試遵循[PEP 8](http://www.python.org/dev/peps/pep-0008/)代碼格式建議的另一個原因。一個額外的空間,不會有'。/'運算符的問題。 PEP 8似乎對'1.'是否應該是'1.0'沒有提及。你認爲最佳做法是什麼? –

+1

@StevenRumbalski:我總是自己用0;省略它沒有任何價值。 –

1

1.表示浮點數。 /代表除法。