अपने प्रश्न का सीधे उत्तर देने के लिए, आप इस शब्द का उपयोग करना चाहते हैं epsilon
। अधिक सटीक रूप से, यह machine epsilon
सामान्य उपयोग "मशीन" से गिरता है और बस उपयोग होता है epsilon
।
float.h
मैं देख रहा हूँ की मेरी स्थानीय प्रति में देख:
#define DBL_EPSILON 2.2204460492503131e-016 /* smallest such that 1.0+DBL_EPSILON != 1.0 */
#define FLT_EPSILON 1.192092896e-07F /* smallest such that 1.0+FLT_EPSILON != 1.0 */
#define LDBL_EPSILON DBL_EPSILON /* smallest such that 1.0+LDBL_EPSILON != 1.0 */
और संबंधित टिप्पणियां यह स्पष्ट करती हैं कि एप्सिलॉन वह शब्द है जिसका आप उल्लेख कर रहे हैं।
लेकिन हम यह सत्यापित करने के लिए कुछ अन्य, बाहरी संदर्भों पर भी भरोसा कर सकते हैं कि epsilon
यह सही शब्द है। देखें यहाँ , यहाँ , यहाँ , और अंत में के इस संयोजन अतः क्वेरी टैग । मैं IEEE 754 मानक को उद्धृत करने के लिए एक सीधा संदर्भ खोजने में सक्षम नहीं था।
आपने पूछा नहीं, लेकिन मुझे यह संदर्भ मिला जो आपके प्रश्न को स्पष्ट करने के लिए आपके द्वारा दिए गए उदाहरण के लिए बहुत प्रासंगिक है।
कुछ अंतर्दृष्टि के लिए फ्लोटिंग पॉइंट वैल्यू की तुलना करने पर वाल्व के ब्रूस डॉसन के इस ब्लॉग लेख पर एक नज़र डालें कि आप जो तुलना करना चाहते हैं उसका उपयोग क्यों नहीं करना चाहते हैं।
उस लेख में काफी जानकारी भरी हुई है, लेकिन यह वहां से सबसे अधिक प्रासंगिक स्निपेट है:
अगर समानता के लिए फ्लोट्स की तुलना करना एक बुरा विचार है, तो यह जाँचने के बारे में कि क्या उनका अंतर कुछ त्रुटि सीमा या एप्सिलॉन मान के भीतर है, जैसे:
bool isEqual = fabs(f1 – f2) <= epsilon;
इस गणना के साथ हम दो झांकियों की अवधारणा को काफी करीब से व्यक्त कर सकते हैं कि हम उन्हें समान समझना चाहते हैं। लेकिन एप्सिलॉन के लिए हमें किस मूल्य का उपयोग करना चाहिए?
ऊपर दिए गए हमारे प्रयोग को देखते हुए हमें अपनी राशि में त्रुटि का उपयोग करने के लिए लुभाया जा सकता है, जो लगभग 1.19e-7f था। वास्तव में, फ्लोट में भी एक परिभाषित है। उस सटीक मूल्य के साथ, और इसे FLT_EPSILON कहा जाता है।
जाहिर है कि यह है। हेडर फ़ाइल देवताओं ने बात की है और FLT_EPSILON एक सच्चा एप्सिलॉन है!
सिवाय इसके कि बकवास है। 1.0 और 2.0 के बीच की संख्या के लिए FLT_EPSILON आसन्न फ्लोट्स के बीच अंतर का प्रतिनिधित्व करता है। 1.0 से छोटी संख्या के लिए FLT_EPSILON का एक एप्सिलॉन जल्दी से बहुत बड़ा हो जाता है, और छोटी पर्याप्त संख्या के साथ FLT_EPSILON आपके द्वारा तुलना किए जा रहे नंबरों से बड़ा हो सकता है!
डॉसन फ्लोट्स की तुलना करते समय और इस तरह के बहुत छोटे मूल्यों से निपटने के दौरान शामिल जटिलताओं के बारे में कुछ अन्य विचार करते हैं, इसलिए मैं आपके बाकी पोस्ट को पढ़ने के लिए प्रोत्साहित करूंगा।