Как выразить бесконечность в Ruby? - PullRequest
127 голосов
/ 25 апреля 2011

Есть ли ключевое слово для выражения бесконечности в Ruby?

Ответы [ 3 ]

180 голосов
/ 25 апреля 2011

Если вы используете 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

96 голосов
/ 25 апреля 2011

Нет ключевого слова, но 1.9.2 имеет константу для этого:

>> Float::INFINITY #=> Infinity
>> 3 < Float::INFINITY #=> true
6 голосов
/ 25 июля 2013

http://www.ruby -doc.org / stdlib-1.9.3 / libdoc / bigdecimal / rdoc / BigDecimal.html # label-Infinity

1.9.3p429 :025 > BigDecimal('Infinity')
 => #<BigDecimal:7f8a6c548140,'Infinity',9(9)>
1.9.3p429 :026 > BigDecimal('-Infinity')
 => #<BigDecimal:7f8a6a0e3728,'-Infinity',9(9)>
1.9.3p429 :027 > 3 < BigDecimal('Infinity')
 => true

1.9.3p429 :028 > BigDecimal::INFINITY
 => #<BigDecimal:7f8a6ad046d8,'Infinity',9(9)>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...