दिलचस्प पोस्ट
क्यों एक अप्रयुक्त फ़ंक्शन पैरामीटर मान शून्य करने के लिए डाली? एनएटी आउट ऑफ़ मेमोरी अपवाद – 1.3 जीपी इस्तेमाल किया गया है लेकिन इसमें 16 जीबी इंस्टॉल किया गया है कारखाना / डी को संयोजित नहीं किया जा सकता है LAST_INSERT_ID () MySQL तिथि के अनुसार git चेकआउट AngularJS – $ नष्ट घटना श्रोताओं को नष्ट करता है? मेमोरी बाधा जनरेटर राज्य में बुलाया मीडिया प्लेयर 0, त्रुटि (-38,0) ग्रहण लापता वृक्ष में ईगिट एकाधिक इंडेक्स बनाम मल्टी-कॉलम इंडेक्स एक प्रक्रिया से एक जावा इनपुटस्ट्रीम छपाई स्विफ्ट 3 ग़लत स्ट्रिंग इंटरप्रोलेशन जिसमें अन्तर्निहित अवांछित विकल्प हैं एक एकल कार्रवाई के साथ कई फाइलें डाउनलोड करें क्लास में मेरे पास एक गैर-अभिन्न स्थिर कॉन्स्ट सदस्य क्यों नहीं हो सकता? HTML5 में कैनवास की चौड़ाई और ऊंचाई

क्यों रूबी में विभाजित दशमलव मान के बजाय एक पूर्णांक है?

उदाहरण के लिए:

9 / 5 #=> 1 

लेकिन मुझे उम्मीद है कि 1.8 मैं सही दशमलव (गैर-पूर्णांक) परिणाम कैसे प्राप्त करूं? यह 1 पर वापस क्यों लौट रहा है?

वेब के समाधान से एकत्रित समाधान "क्यों रूबी में विभाजित दशमलव मान के बजाय एक पूर्णांक है?"

यह पूर्णांक विभाजन कर रहा है आप जोड़कर एक Float संख्या में से एक बना सकते हैं .0 :

 9.0 / 5 #=> 1.8 9 / 5.0 #=> 1.8 

यह पूर्णांक विभाजन कर रहा है आप को फ्लोटिंग पॉइंट मोड में चीजों पर बाध्य करने के लिए to_f का उपयोग कर सकते हैं:

 9.to_f / 5 #=> 1.8 9 / 5.to_f #=> 1.8 

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

इसमें Numeric#fdiv विधि भी है जिसे आप इसके बजाय उपयोग कर सकते हैं:

 9.fdiv(5) #=> 1.8 

आप इसे irb के साथ देख सकते हैं:

 $ irb >> 2 / 3 => 0 >> 2.to_f / 3 => 0.666666666666667 >> 2 / 3.to_f => 0.666666666666667 

आप रूबी mathn मॉड्यूल को शामिल कर सकते हैं।

 require 'mathn' 

इस तरह, आप सामान्य रूप से विभाजन को बनाने में सक्षम होने जा रहे हैं।

 1/2 #=> (1/2) (1/2) ** 3 #=> (1/8) 1/3*3 #=> 1 Math.sin(1/2) #=> 0.479425538604203 

इस तरह, आपको सटीक विभाजन (कक्षा तर्कसंगत) मिलता है, जब तक कि आप उस ऑपरेशन को लागू करने का निर्णय नहीं लेते जो कि तर्कसंगत रूप में व्यक्त नहीं किया जा सकता है, उदाहरण के लिए Math.sin

5 से 5.0 को बदलें। आप पूर्णांक विभाजन प्राप्त कर रहे हैं।

Fixnum # to_r यहाँ उल्लेख नहीं है, यह ruby ​​1.9 से शुरू किया गया था। यह Fixnum को तर्कसंगत रूप में परिवर्तित करता है। इसके उपयोग के उदाहरण नीचे दिए गए हैं यह तब तक सटीक विभाजन दे सकता है जब तक सभी नंबरों का प्रयोग किया गया फिक्सन्यूम।

  a = 1.to_r #=> (1/1) a = 10.to_r #=> (10/1) a = a / 3 #=> (10/3) a = a * 3 #=> (10/1) a.to_f #=> 10.0 

उदाहरण जहां एक फ्लोट एक तर्कसंगत संख्या पर संचालित होता है जिसके परिणामस्वरूप फ्लोट को परिणाम मिलता है।

 a = 5.to_r #=> (5/1) a = a * 5.0 #=> 25.0