2016-11-06 36 views
3

我想知道如何在Python 2.7中將inf-inf定義爲int。我試過了,看起來inf-inf只能用作float
在Python 2.7中將整數表示爲整數

a = float('-inf') # works 
b = float('inf') # works 

c = int('-inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf' 
d = int('inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf' 
+3

不能將無窮大表示爲一個整數,但浮點表示有一個特殊情況允許它。您必須使用浮點表示法。 – Jezzamon

+0

@Jezzamon,使用inf/-inf的浮點表示來表示int?你能告訴我如何? 'type(float)'!='type(int)',你需要一個顯式的類型轉換來將float轉換爲int嗎? –

+0

@Jezzamon,我試過似乎'雙('inf')'和'雙(' - inf')'也不起作用? –

回答

7

要總結一下在評論

說有沒有辦法來表示無窮大的Python的整數。這與許多其他語言的行爲相匹配。但是,由於Python的動態分類系統,您可以使用float('inf')代替整數,並且其行爲與您預期的相同。

至於爲無窮大創建一個'double',在Python中只有一個浮點類型,稱爲float,不像其他語言,如Java,它使用浮點數和雙精度浮點數。在Python中,floating point numbers usually use double-precision,所以它們的行爲與Java中的雙打相同。