C++ में सेटप्रिसिजन का उपयोग कैसे करें

C Mem Setaprisijana Ka Upayoga Kaise Karem



आपने गणित और भौतिकी में फ़्लोटिंग-पॉइंट मान और वैज्ञानिक नोटेशन को सीखा और अध्ययन किया होगा। आपने फ़्लोटिंग-पॉइंट नंबरों पर राउंड-ऑफ करना भी सीखा होगा। C++ में सेटप्रिसिजन उपयोगिता का उपयोग अक्सर फ़्लोटिंग-पॉइंट पूर्णांक आउटपुट अनुक्रम के अंदर प्रदर्शित संख्याओं के अनुक्रम को बदलने के लिए किया जाता है। यह राउंड-ऑफ़ कार्यक्षमता के समान ही कार्य करता है। इस विधि को मानक लाइब्रेरी में परिभाषित किया गया है। इस ट्यूटोरियल में, हम आपको दिखाएंगे कि C++ के 'सेटप्रिसिजन' फ़ंक्शन का उपयोग कैसे करें। तो चलो शुरू हो जाओ। इस पर काम करने के लिए हमें उबंटू शेल एप्लिकेशन को 'Ctrl+Alt+T' के माध्यम से शुरू करना होगा। हमें C++ कंपाइलर को इंस्टाल करना शुरू करना होगा, जो हमारे मामले में g++ है। इसलिए, इस उद्देश्य के लिए अब तक उपयुक्त पैकेज का उपयोग किया जाएगा। सिस्टम कुछ ही सेकंड में g++ इंस्टॉल कर देगा: $ सूडो अपार्ट स्थापित करना जी++

उदाहरण 01:

इसलिए, हमने 'नैनो' निर्देश के साथ 'new.cc' फ़ाइल खोली है। यह फ़ाइल शेल की 'टच' क्वेरी का उपयोग करके बनाई गई है। फ़ाइल अब नैनो संपादक में एक खाली फ़ाइल के रूप में लॉन्च की गई है। हमने शीर्ष पर इनपुट-आउटपुट 'iostream' हेडर फ़ाइल जोड़ी है। हमारे कोड की सेटप्रिसिजन() विधि का उपयोग करने के लिए 'iomanip' लाइब्रेरी को जोड़ा गया है। इसके बाद, हमने यह सुनिश्चित करने के लिए मानक नामस्थान 'एसटीडी' का उपयोग किया कि हम कोड और सिंटैक्स के मानक तरीके का उपयोग कर रहे हैं। समग्र कोड C++ कोड के मुख्य() फ़ंक्शन के भीतर निष्पादित किया गया है। इस उद्देश्य के लिए किसी अन्य उपयोगकर्ता-परिभाषित फ़ंक्शन का उपयोग नहीं किया जाता है।







मुख्य() फ़ंक्शन के भीतर, हमने दोहरे मान के साथ एक डबल टाइप वेरिएबल 'v' प्रारंभ किया है। पहला 'काउट' मानक कथन बिना किसी अद्यतन के शेल पर वास्तविक दोहरे चर मान 'v' को प्रदर्शित करता है। इसके बाद, हमने प्रत्येक में setprecision() विधि का उपयोग करने के लिए 8 कॉउट स्टेटमेंट का उपयोग किया है। यह हर बार 'v' वेरिएबल के प्रत्येक फ़्लोटिंग-पॉइंट पर सेटप्रिसिजन() को लागू करना है। आपको यह समझना चाहिए कि सेटप्रिसिजन केवल 5 से अधिक या उसके बराबर मान पर काम करता है। यदि फ्लोटिंग-पॉइंट मान 5 से बड़ा है, तो यह इसके पहले के मान में वृद्धि करेगा।



उदाहरण के लिए, पहले फ़्लोटिंग-पॉइंट पर सेटप्रिसिजन () बिंदु के बाद '5' को पूर्णांकित करेगा, और मान '4' को 5 में बदल दिया जाएगा। इसी तरह, दूसरे फ़्लोटिंग-पॉइंट मान '2' को पूर्णांकित नहीं किया जा सकता है, तीसरा फ़्लोटिंग-पॉइंट मान '7' मान '2' को '3' में बदल देगा, चौथा फ़्लोटिंग-पॉइंट मान '4' को पूर्णांकित नहीं किया जा सकता है, और 5वां फ़्लोटिंग-पॉइंट मान '9' मान '4' को बदल देगा इससे पहले 5 तक. '0' बिंदु पर मान '4' को 5 में परिवर्तित कर दिया जाएगा। नकारात्मक सेटप्रिसिजन () संपूर्ण वास्तविक मान प्रदर्शित करने के अलावा कुछ नहीं करता है। फ़्लोटिंग पॉइंट 0 से 5 और -1, -2 पर सभी मान सेटप्रिसिजन() लागू करने के बाद प्रदर्शित किए जाएंगे:







अब जी++ संकलन क्वेरी और './a.out' निष्पादन क्वेरी के साथ सेटप्रिसिजन सी++ कोड को संकलित करने और चलाने का समय आ गया है। आउटपुट से पता चलता है कि पहला सेटप्रिसिजन(1) 4 को 5 में बदल देता है। सेटप्रिसिजन(2) ने कुछ नहीं किया और '4.5' प्रदर्शित करता है। सेटप्रिसिजन(3) ने मान को '4.52' से बढ़ाकर '4.53' कर दिया। सेटप्रिसिजन(4) '4.527' मान पर कोई प्रभाव नहीं डालता। सेटप्रिसिजन(5) मान को '4.5274' से बढ़ाकर '4.5275' कर देता है। सेटप्रिसिजन(0) ने मान को 5 तक बढ़ा दिया। सेटप्रिसिजन(-1) और सेटप्रिसिजन(-2) ने कुछ नहीं किया जैसा कि नीचे दिखाया गया है:

$ जी++ new.cc

$. / ए.बाहर



उदाहरण 02:

आइए एक और उदाहरण देखें. कोड उपरोक्त उदाहरण के समान है, केवल इसके कॉउट स्टेटमेंट में बदलाव है। पहला कॉउट मूल मान दिखाता है जबकि अगले दो फ्लोटिंग पॉइंट 1 और 5 पर सेटप्रिसिजन() का परिणाम दिखाते हैं। अंतिम कॉउट फ्लोटिंग-पॉइंट 9 पर सेटप्रिसिजन() विधि का परिणाम प्रदर्शित करता है, जो भौतिक रूप से उपलब्ध नहीं है। 1 और 5 फ़्लोटिंग-पॉइंट परिणाम काफी अपेक्षित हैं, लेकिन हम फ़्लोटिंग-पॉइंट 9 के बारे में कुछ नहीं कह सकते हैं। आइए बस फ़ाइल निष्पादित करें और जांचें कि इस कोड का आउटपुट क्या होगा:

#शामिल करें

#शामिल

का उपयोग करते हुए नाम स्थान कक्षा ;

int यहाँ मुख्य ( ) {

दोहरा में = 4.52749 ;

अदालत << 'सेटपरिशुद्धता से पहले मूल्य:' << में << ' \एन ' ;

अदालत << setprecision ( 1 ) << 'वैल 1 पर:' << में << ' \एन ' ;

अदालत << setprecision ( 5 ) << 'वैल 5 बजे:' << में << ' \एन ' ;

अदालत << setprecision ( 9 ) << 'वैल 9 बजे:' << में << ' \एन ' ;

वापस करना 0 ;

}

इस कोड के संकलन और निष्पादन के बाद, हमारे पास फ्लोटिंग-पॉइंट मान '4.52749' के स्थान 1 और 3 पर सेटप्रिसिजन के स्पष्ट परिणाम हैं। सेटप्रिसिजन 9 का परिणाम डबल वेरिएबल 'v' का वास्तविक मान दिखाता है। यह इस तथ्य के कारण हो सकता है कि स्थान 9 का मान निश्चित नहीं है:

$ जी++ new.cc

$. / ए.बाहर

आइए वेरिएबल 'v' के मानों को ठीक करने के लिए कोड को फिर से अपडेट करें। इसलिए, वेरिएबल के पहले स्थान पर लागू किए गए पहले सेटप्रिसिजन () कॉउट स्टेटमेंट के बाद, हमने कॉउट में निश्चित वेरिएबल का उपयोग किया है:

#शामिल करें

#शामिल

का उपयोग करते हुए नाम स्थान कक्षा ;

int यहाँ मुख्य ( ) {

दोहरा में = 4.52749 ;

अदालत << 'सेटपरिशुद्धता से पहले मूल्य:' << में << ' \एन ' ;

अदालत << setprecision ( 1 ) << 'वैल 1 पर:' << में << ' \एन ' ;

अदालत << तय ;

अदालत << setprecision ( 5 ) << 'वैल 5 बजे:' << में << ' \एन ' ;

अदालत << setprecision ( 9 ) << 'वैल 9 बजे:' << में << ' \एन ' ;

वापस करना 0 ;

}

इस अद्यतन कोड को संकलित करने और चलाने के बाद, हमारे पास एक वेरिएबल 'v' के स्थान 9 पर सेटप्रिसिजन का निश्चित परिणाम है, यानी, 4.527490000:

$ जी++ new.cc

$. / ए.बाहर

निष्कर्ष:

अंत में, यह सब C++ कोड में सेटप्रिसिजन() विधि का उपयोग करके डबल वेरिएबल के मान को राउंड ऑफ करने और प्रदर्शित करने के बारे में था। हमने कोड में निश्चित चर और उनके लाभों के बारे में भी बताया है। साथ ही, हमने C++ में सेट परिशुद्धता की अवधारणा को समझाने के लिए दो महत्वपूर्ण उदाहरण लागू किए हैं। हमें उम्मीद है कि आपको यह लेख उपयोगी लगा होगा। अधिक युक्तियों और ट्यूटोरियल के लिए अन्य लिनक्स संकेत लेख देखें।