วิธีแสดงอินฟินิตี้ใน Ruby


คำตอบ:


188

หากคุณใช้ทับทิม 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
ขวา. ฉันลองทำการเปรียบเทียบระหว่างจำนวนเต็มและค่านั้นและดูเหมือนว่าจะทำงานได้ดี ฉันแค่สงสัยว่าตอนนี้ปลอดภัยแล้วหรือยัง!
Amokrane Chentir

1
มีบทความดีๆที่อธิบายคุณสมบัติของ Infinity ใน Ruby (รวมถึง Infinity ที่ได้มาจากการหารด้วย 0): nithinbekal.com/posts/ruby-infinity - ควรให้แนวคิดว่าปลอดภัยหรือไม่ (สำหรับสิ่งที่คุ้มค่า IMHO ที่ยุ่งเหยิงกับค่า Infinity ของตัวเลขแทบไม่เคยปลอดภัยหรือจำเป็นอย่างแท้จริงไม่ว่าคุณจะใช้ภาษาโปรแกรมอะไรเว้นแต่คุณจะทำงานที่เกี่ยวข้องกับคณิตศาสตร์จริงๆ)
Andrew Faulkner

ดีมากขอบคุณฉันเชื่อว่าคุณสามารถทำ-Float::INFINITYเพื่อลบอนันต์ได้เช่นกัน
Saleh Rastani

98

ไม่มีคีย์เวิร์ด แต่ 1.9.2 มีค่าคงที่สำหรับสิ่งนี้:

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

+1 ฉันไม่รู้ว่านี่คือใน 1.9.2 ฉันได้อัปเดตคำตอบที่นำผู้คนไปหาคำตอบของคุณหากนั่นคือเวอร์ชันที่พวกเขากำหนด
แมตต์

6

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)>

ใช้งานได้ดีและ IMHO ดูดีขึ้นแล้ว Float :: INFINITY
Alexander Gorg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.