Ruby Language
नंबर
खोज…
टिप्पणियों
संख्या पदानुक्रम
रूबी में संख्याओं का प्रतिनिधित्व करने के लिए कई अंतर्निहित कक्षाएं शामिल हैं:
Numeric
Integer
Fixnum # 1
Bignum # 10000000000000000000
Float # 1.0
Complex # (1+0i)
Rational # Rational(2, 3) == 2/3
BigDecimal # not loaded by default
सबसे आम हैं:
-
Fixnum
प्रतिनिधित्व करने के लिए, उदाहरण के सकारात्मक और नकारात्मक पूर्णांकों के लिए - फ्लोटिंग पॉइंट संख्याओं को दर्शाने के लिए
Float
BigDecimal
डिफ़ॉल्ट रूप से लोड नहीं किया गया एकमात्र है। आप इसे लोड कर सकते हैं:
require "bigdecimal"
ध्यान दें कि रूबी 2.4+ में, Fixnum
और Bignum
एकीकृत कर रहे हैं; सभी पूर्णांक अब Integer
वर्ग के सदस्य हैं। पश्चगामी संगतता के लिए, Fixnum == Bignum == Integer
।
एक पूर्णांक बनाना
0 # creates the Fixnum 0
123 # creates the Fixnum 123
1_000 # creates the Fixnum 1000. You can use _ as separator for readability
डिफ़ॉल्ट रूप से संकेतन आधार 10 है। हालांकि, कुछ अन्य आधारों के लिए कुछ अन्य अंतर्निहित सूचनाएं हैं:
0xFF # Hexadecimal representation of 255, starts with a 0x
0b100 # Binary representation of 4, starts with a 0b
0555 # Octal representation of 365, starts with a 0 and digits
एक स्ट्रिंग को इंटेगर में परिवर्तित करना
String
को Integer
बदलने के लिए आप Integer
विधि का उपयोग कर सकते हैं:
Integer("123") # => 123
Integer("0xFF") # => 255
Integer("0b100") # => 4
Integer("0555") # => 365
आप एक निश्चित आधार से संख्याओं को परिवर्तित करने के लिए Integer
विधि के लिए एक बेस पैरामीटर भी पास कर सकते हैं
Integer('10', 5) # => 5
Integer('74', 8) # => 60
Integer('NUM', 36) # => 30910
ध्यान दें कि यदि पैरामीटर परिवर्तित नहीं किया जा सकता है तो विधि एक ArgumentError
उठाती है:
Integer("hello")
# raises ArgumentError: invalid value for Integer(): "hello"
Integer("23-hello")
# raises ArgumentError: invalid value for Integer(): "23-hello"
आप String#to_i
विधि का भी उपयोग कर सकते हैं। हालाँकि, यह विधि थोड़ी अधिक अनुमेय है और इसका पूर्ण व्यवहार Integer
से अधिक है:
"23".to_i # => 23
"23-hello".to_i # => 23
"hello".to_i # => 0
String#to_i
एक तर्क को स्वीकार करता है, आधार को संख्या की व्याख्या करने के लिए:
"10".to_i(2) # => 2
"10".to_i(3) # => 3
"A".to_i(16) # => 10
किसी संख्या को स्ट्रिंग में परिवर्तित करना
Fixnum # to_s एक वैकल्पिक आधार तर्क लेता है और उस आधार में दी गई संख्या का प्रतिनिधित्व करता है:
2.to_s(2) # => "10"
3.to_s(2) # => "11"
3.to_s(3) # => "10"
10.to_s(16) # => "a"
यदि कोई तर्क प्रदान नहीं किया जाता है, तो यह आधार 10 में संख्या का प्रतिनिधित्व करता है
2.to_s # => "2"
10423.to_s # => "10423"
दो संख्याओं का विभाजन
दो संख्याओं को विभाजित करते समय आप जिस प्रकार के बदले में चाहते हैं उस पर ध्यान दें। ध्यान दें कि दो पूर्णांकों को विभाजित करने से पूर्णांक विभाजन का आह्वान होगा । यदि आपका लक्ष्य फ्लोट डिवीजन को चलाना है, तो कम से कम एक पैरामीटर float
प्रकार का होना चाहिए।
पूर्णांक विभाजन:
3 / 2 # => 1
फ्लोट डिवीजन
3 / 3.0 # => 1.0
16 / 2 / 2 # => 4
16 / 2 / 2.0 # => 4.0
16 / 2.0 / 2 # => 4.0
16.0 / 2 / 2 # => 4.0
परिमेय संख्या
Rational
एक संख्यात्मक और भाजक के रूप में परिमेय संख्या का प्रतिनिधित्व करता है:
r1 = Rational(2, 3)
r2 = 2.5.to_r
r3 = r1 + r2
r3.numerator # => 19
r3.denominator # => 6
Rational(2, 4) # => (1/2)
एक तर्कसंगत बनाने के अन्य तरीके
Rational('2/3') # => (2/3)
Rational(3) # => (3/1)
Rational(3, -5) # => (-3/5)
Rational(0.2) # => (3602879701896397/18014398509481984)
Rational('0.2') # => (1/5)
0.2.to_r # => (3602879701896397/18014398509481984)
0.2.rationalize # => (1/5)
'1/4'.to_r # => (1/4)
जटिल आंकड़े
1i # => (0+1i)
1.to_c # => (1+0i)
rectangular = Complex(2, 3) # => (2+3i)
polar = Complex('1@2') # => (-0.4161468365471424+0.9092974268256817i)
polar.rectangular # => [-0.4161468365471424, 0.9092974268256817]
rectangular.polar # => [3.605551275463989, 0.982793723247329]
rectangular + polar # => (1.5838531634528576+3.909297426825682i)
सम और विषम संख्या
यहां even?
विधि का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि क्या कोई संख्या सम है
4.even? # => true
5.even? # => false
odd?
एक संख्या विषम है यह निर्धारित करने के लिए विधि का उपयोग किया जा सकता है
4.odd? # => false
5.odd? # => true
राउंडिंग नंबर
round
विधि एक संख्या को गोल करेगी यदि उसका दशमलव स्थान 5 या उच्चतर के बाद पहला अंक है और यदि वह अंक 4 या उससे कम है तो गोल होगा। यह आपके द्वारा ढूंढी जा रही परिशुद्धता के लिए एक वैकल्पिक तर्क में है।
4.89.round # => 5
4.25.round # => 4
3.141526.round(1) # => 3.1
3.141526.round(2) # => 3.14
3.141526.round(4) # => 3.1415
फ़्लोटिंग पॉइंट नंबरों को floor
विधि के साथ संख्या की तुलना में सबसे कम पूर्णांक तक गोल किया जा सकता है
4.9999999999999.floor # => 4
उन्हें ceil
विधि का उपयोग करके संख्या की तुलना में सबसे कम पूर्णांक तक गोल किया जा सकता है
4.0000000000001.ceil # => 5