2011-06-06 20 views
8

numeric_limits::espilon 1 और अगले डबल के बीच का अंतर देता है। तो, क्या मुझे समझना चाहिए कि दो आसन्न युगल के बीच की दूरी हमेशा समान नहीं होती है, उदाहरण के लिए 2 और अगले डबल के बीच?std: numeric_limits <double> :: ईपीएसलॉन परिभाषा

और यदि हाँ मेरे पास स्पष्टीकरण का एक टुकड़ा हो सकता है?

उत्तर

16

फ्लोटिंग प्वाइंट नंबर की "घनत्व" एक बहुत कम हो जाती है के रूप में आप आगे शून्य से दूर मिलता है।

ऐसा इसलिए है क्योंकि आईईईई फ़्लोटिंग-पॉइंट को वैज्ञानिक नोटेशन के रूप में अनिवार्य रूप से संग्रहीत किया जाता है, इसलिए सीमा समान परिशुद्धता पर अनुकूल होती है। (यदि यह वर्दी परिशुद्धता था, यह निश्चित बिंदु, नहीं फ्लोटिंग प्वाइंट होगा।)

दूसरे शब्दों में, संख्या, प्रपत्र Significand * 2 प्रतिपादक में जमा हो जाती है, इसलिए यदि प्रतिपादक बड़े हो जाता है, महत्व में एक छोटा सा परिवर्तन संख्या में एक बड़ा परिवर्तन पैदा करता है (और इसके विपरीत)।

तो नहीं, आप यह नहीं मान सकते कि 2 और अगले डबल के बीच का अंतर ईपीएसलॉन जैसा ही है; यह नहीं है

+2

यह इंगित करने योग्य हो सकता है कि यह एक सचेत डिज़ाइन विकल्प है: यह अक्सर शून्य के पास उच्च परिशुद्धता रखने के लिए उपयोगी होता है, जबकि हम बड़ी संख्या में अधिक क्षमा कर रहे हैं। तो फ्लोट/डबल एक अच्छा ऑल-राउंड डेटाटाइप है जो अक्सर * सटीक, छोटी संख्याओं और बड़े पैमाने पर पर्याप्त होता है, लेकिन कम सटीक होता है। यह एक साधारण 32- या 64-बिट-व्यापी डेटा प्रकार को यथासंभव व्यापक रूप से उपयोगी बनाने का प्रयास है। वैसे भी, मेरे द्वारा +1 – jalf

2

डबल्स फ़्लोटिंग पॉइंट नंबर हैं। उनमें एक संकेत, एक महत्व और एक एक्सपोनेंट होता है।

एक्सपोनेंट जितना अधिक होगा, एक डबल और इसके उत्तराधिकारी के बीच का अंतर बड़ा होगा।

एक्सपोनेंट जितना कम होगा, एक डबल और इसके उत्तराधिकारी के बीच अंतर छोटा होगा।

संबंधित मुद्दे