2010-05-27 57 views

回答

52

python 2.6它是便攜式的,如果CPU支持它

浮子()函數現在將關閉 串楠成IEEE 754不是一個 數值,和+ INF和-INF成 正面或負面的無限。這個 在IEEE 754 語義的任何平臺上工作。

+1

的平臺上會發生什麼事沒有IEEE 754語義? – fmark 2010-05-27 09:15:14

+14

@fmark:祝您找到一個Python運行的平臺,但它沒有IEEE 754語義。理論上講,'float('inf')'應該在這些平臺上引發'ValueError',但據我所知,這種行爲從來沒有被測試過,因爲Python(至少是Python的最新版本)至今尚未見過這樣的平臺。在實踐中不要擔心。 – 2010-05-27 10:09:32

12

float('inf')是不可移植的,因爲在平臺之間字符串輸出不同時,不能移植回Python 2.5。從2.6開始,float('inf')保證可以在IEEE-754兼容平臺上工作(參考號:http://www.python.org/dev/peps/pep-0754/)。

(和建議似乎是在範圍1e30000,不只是1e400)

10

也許你可以做這樣的事情

try: 
    inf = float('inf') 
except: # check for a particular exception here? 
    inf = 1e30000 
+5

+1。一般來說,float('inf')'肯定是首選。甚至有可能「inf = 1e30000」可能會在未來的某個版本的Python中開始引發「OverflowError」而不是產生無窮大。 – 2010-05-27 10:06:59