खोज…


एक स्ट्रिंग के लिए कास्टिंग

123.5.to_s    #=> "123.5"
String(123.5) #=> "123.5"

आमतौर पर, String() सिर्फ #to_s कॉल #to_s

तरीके Kernel#sprintf और String#% C के समान व्यवहार करते हैं:

sprintf("%s", 123.5) #=> "123.5"
"%s" % 123.5 #=> "123.5"
"%d" % 123.5 #=> "123"
"%.2f" % 123.5 #=> "123.50"

एक इंटीजर के लिए कास्टिंग

"123.50".to_i     #=> 123
Integer("123.50") #=> 123

एक स्ट्रिंग अपनी शुरुआत में किसी भी पूर्णांक का मान लेगा, लेकिन कहीं और से पूर्णांक नहीं लेगा:

"123-foo".to_i # => 123
"foo-123".to_i # => 0

हालाँकि, एक अंतर है जब स्ट्रिंग एक मान्य इंटेगर नहीं है:

"something".to_i     #=> 0
Integer("something") # ArgumentError: invalid value for Integer(): "something"

एक फ्लोट के लिए कास्टिंग

"123.50".to_f   #=> 123.5
Float("123.50") #=> 123.5

हालांकि, एक अंतर है जब स्ट्रिंग एक वैध Float नहीं है:

"something".to_f   #=> 0.0
Float("something") # ArgumentError: invalid value for Float(): "something"

फ्लोट्स और इंटेगर

1/2 #=> 0

चूंकि हम दो पूर्णांकों को विभाजित कर रहे हैं, परिणाम एक पूर्णांक है। इस समस्या को हल करने के लिए, हमें फ्लोट में से कम से कम एक कास्ट करने की आवश्यकता है:

1.0 / 2      #=> 0.5
1.to_f / 2   #=> 0.5
1 / Float(2) #=> 0.5

वैकल्पिक रूप से, fdiv का उपयोग विभाजन के फ़्लोटिंग पॉइंट परिणाम को वापस करने के लिए किया जा सकता है, बिना स्पष्ट रूप से डाले बिना।

1.fdiv 2 # => 0.5


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