खोज…


टिप्पणियों

संख्या पदानुक्रम

रूबी में संख्याओं का प्रतिनिधित्व करने के लिए कई अंतर्निहित कक्षाएं शामिल हैं:

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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow