डबल्स में दशमलव स्थान हेरफेर: गोलाई त्रुटियों को हल करना
परिशुद्धता संख्यात्मक संचालन का एक महत्वपूर्ण पहलू है, खासकर जब फ्लोटिंग-पॉइंट डेटा से निपटना डबल जैसे प्रकार. गुणा या भाग का उपयोग करके दशमलव स्थानों को स्थानांतरित करने का प्रयास करते समय, किसी को पूर्णांकन त्रुटियों की चुनौती का सामना करना पड़ता है। यह आलेख दशमलव स्थानों को युगल में स्थानांतरित करने की बारीकियों की जांच करता है और गोलाई त्रुटियों को कम करने के लिए तकनीकों की पड़ताल करता है। एक डबल में संग्रहित किया गया है और लक्ष्य 12.34 प्राप्त करने के लिए दशमलव स्थान को स्थानांतरित करना है। 1234 को 0.1 से दो बार गुणा करने पर, जैसा कि नीचे दिए गए कोड स्निपेट में दिखाया गया है, 12.34 का वांछित परिणाम नहीं मिलता है।
double x = 1234; for(int i=1;i
कारण: फ़्लोटिंग-पॉइंट प्रतिनिधित्व में अशुद्धियाँdouble x = 1234; for(int i=1;iडबल x = 1234; एक्स /= 100; System.out.println(x); // प्रिंट्स: 12.34
बिगडेसीमल: सटीक अंकगणित को संभालनापूर्ण परिशुद्धता की आवश्यकता वाले परिदृश्यों के लिए, बिगडेसीमल का उपयोग करने पर विचार करें। डबल या फ़्लोट के विपरीत, BigDecimal बिना राउंडिंग त्रुटियों के दशमलव अंकगणित को संभाल सकता है। हालाँकि, इसमें आदिम संख्यात्मक प्रकारों की तुलना में प्रदर्शन जुर्माना लग सकता है। दोहरी परिशुद्धता 15 से 16 महत्वपूर्ण अंकों की अनुमति देती है, जिसका अर्थ है कि कई परिचालनों में छोटी गोलाई त्रुटियाँ जमा हो सकती हैं। जैसा कि ऊपर दर्शाया गया है, 10 की घातों से विभाजन इन त्रुटियों को कम करने में मदद करता है, लेकिन यह सभी परिदृश्यों के लिए अचूक नहीं है।
विभाजन और गुणन पर नोटdouble x = 1234; x /= 100; System.out.println(x); // Prints: 12.34
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3