Ruby Language
कास्टिंग (प्रकार रूपांतरण)
खोज…
एक स्ट्रिंग के लिए कास्टिंग
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