2011-04-25 98 views

回答

157

如果您使用Ruby 1.9.2,您可以使用

>> Float::INFINITY #=> Infinity 
>> 3 < Float::INFINITY #=> true 

,也可以使用創建自己的常數如下*:
我檢查了在Ruby中1.8.6, 1.8.7和1.9.2你有Float.infinite?

PositiveInfinity = +1.0/0.0 
=> Infinity 

NegativeInfinity = -1.0/0.0 
=> -Infinity 

CompleteInfinity = NegativeInfinity..PositiveInfinity 
=> -Infinity..Infinity 

*我用Ruby 1.8.6驗證了這一點,並1.9.2

+2

對。我試圖做任何整數和該值之間的比較,它似乎工作正常。我只是想知道如果這是安全的! – 2011-04-25 12:38:54

+1

這裏有一篇很好的文章,描述了Infinity在Ruby中的特性(包括通過除以0得到的Infinity):http://nithinbekal.com/posts/ruby-infinity/ - 應該給你一個關於它是否安全的想法。 (對於什麼是值得的,恕我直言,使用數值無窮大的數值實際上並不安全或真正需要,無論您使用什麼編程語言,除非您正在進行與數學相關的實際工作) – 2016-01-02 10:54:53

93

無關鍵詞,但是1.9.2有這樣一個常數:

>> Float::INFINITY #=> Infinity 
>> 3 < Float::INFINITY #=> true 
+0

+1,我沒有意識到這是1.9.2。如果這是他們的目標版本,我已經更新了我的答案,指導人們回答您的答案。 – Matt 2011-04-25 13:04:11