Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में float और double के बीच अंतर

जैसा कि हम जानते हैं कि C/C++ में फ्लोटिंग पॉइंट नंबर्स यानी वे नंबर्स जिनके साथ दशमलव भाग होता है, के प्रतिनिधित्व के लिए float और double डेटा टाइप की आवश्यकता होती है। अब दोनों डेटा टाइप्स द्वारा प्रदान की गई प्रिसिजन के आधार पर हम दोनों के बीच अंतर कर सकते हैं।

सरल शब्दों में कहा जा सकता है कि double में float की तुलना में 2x अधिक प्रिसिजन होता है जिसका अर्थ है कि double डेटा टाइप में float डेटा टाइप की तुलना में दोगुनी प्रिसिजन होती है।

प्रिसिजन की संख्या के संदर्भ में कहा जा सकता है कि double में फ्लोटिंग पॉइंट नंबर के लिए 64 बिट प्रिसिजन होती है (1 बिट साइन के लिए, 11 बिट्स एक्सपोनेंट के लिए, और 52* बिट्स वैल्यू के लिए), यानी double में 15 दशमलव अंकों की प्रिसिजन होती है। जबकि float में फ्लोटिंग नंबर के लिए 32 बिट प्रिसिजन होती है (8 बिट्स एक्सपोनेंट के लिए, और 23* वैल्यू के लिए), यानी float में 7 दशमलव अंकों की प्रिसिजन होती है।

चूंकि double में float की तुलना में अधिक प्रिसिजन होती है तो यह स्पष्ट है कि यह float डेटा टाइप द्वारा घेरी गई मेमोरी से दोगुनी मेमोरी घेरता है।

दोनों डेटा टाइप्स की रेंज को इस प्रकार दर्शाया जा सकता है: ±3.40282347E+38F यानी float के लिए 6-7 सिग्निफिकेंट डिजिट्स और ±1.79769313486231570E+308 यानी double के लिए 15-16 सिग्निफिकेंट डिजिट्स।

उपरोक्त बिंदुओं के आधार पर हम कह सकते हैं कि जब उच्च प्रिसिजन की आवश्यकता नहीं होती और प्रोग्राम को केवल डेसीमल नंबर्स के विशाल एरे को स्टोर करने की आवश्यकता होती है तो float डेटा स्टोर करने का एक लागत-प्रभावी तरीका है और मेमोरी बचाता है जबकि जब अधिक प्रिसिजन की आवश्यकता हो तो double के लिए जाएं।

  1. - C/C++ में #include <filename> और #include "filename" में अंतर?

    दोनों रूपों के बीच अंतर उस स्थान में है जहां प्रीप्रोसेसर शामिल की जाने वाली फाइल को खोजता है। #include <filename> प्रीप्रोसेसर एक कार्यान्वयन-निर्भर तरीके से खोजता है, यह कंपाइलर द्वारा पूर्व-निर्दिष्ट निर्देशिकाओं में खोजता है। इस विधि का उपयोग आमतौर पर स्टैंडर्ड लाइब्रेरी हेडर फाइलों को शा

  1. - C/C++ में const int*, const int * const, और int const * में अंतर?

    उपरोक्त प्रतीकों का अर्थ निम्नलिखित है: int* - int का पॉइंटर। यह काफी स्पष्ट है। int const * - const int का पॉइंटर। int * const - int का कॉन्स्ट पॉइंटर। int const * const - const int का कॉन्स्ट पॉइंटर। यह भी ध्यान दें कि: const int * और int const * समान हैं। const int * const और int const * const स

  1. - C# में float, double और decimal के बीच अंतर

    Float, double और decimal C# में सभी वैल्यू टाइप्स हैं। वैल्यू टाइप वेरिएबल्स को सीधे वैल्यू असाइन की जा सकती है। वे System.ValueType क्लास से डेराइव्ड हैं। वैल्यू टाइप्स सीधे डेटा समाहित करते हैं। Float वैल्यू टाइप Float एक 32-बिट सिंगल-प्रिसिजन फ्लोटिंग पॉइंट टाइप है जिसकी रेंज 3.4 x 1038 से + 3.4