संक्षेप में, अज्ञात उत्पत्ति के साथ दो फ्लोट की तुलना करते समय, एक ईपीएसलॉन चुनना जो वैध है लगभग असंभव है।
उदाहरण के लिए:
अटलांटा जीए, डलास TX और ओहियो में कुछ जगहों के बीच मील की दूरी की तुलना करते समय एक अच्छा ईपीएसलॉन क्या है?
मेरे बाएं पैर, मेरे दाहिने पैर और मेरे डेस्क के नीचे कंप्यूटर के बीच मील में दूरी की तुलना करते समय एक अच्छा ईपीएसलॉन क्या है?
संपादित करें:
ठीक है, मुझे समझ में नहीं आ रहा है कि आप क्यों नहीं जान पाएंगे कि आपका ईपीएसलॉन क्या है।
लोअर के पुराने दिनों में, मैंने दो कार्यक्रम लिखे जो नेवरविंटर नाइट्स (बायोवेयर द्वारा बनाई गई एक गेम) के साथ काम करते थे। कार्यक्रमों में से एक ने एक बाइनरी मॉडल लिया और इसे ASCII में परिवर्तित कर दिया। दूसरे कार्यक्रम ने एक एएससीआईआई मॉडल लिया और इसे बाइनरी में संकलित किया। मैंने जो परीक्षण लिखे थे उनमें से एक था बायोवेयर के बाइनरी मॉडल लेना, उन्हें एएससीआईआईआई और फिर बाइनरी में वापस लेना। तब मैंने अपने बाइनरी संस्करण की तुलना बायोवेयर से मूल के साथ की। तुलना के दौरान समस्याओं में से एक फ्लोटिंग पॉइंट मानों में कुछ मामूली भिन्नताओं से निपट रहा था। तो प्रत्येक प्रकार के फ्लोटिंग पॉइंट नंबर (वर्टेक्स, सामान्य, आदि) के लिए अलग-अलग ईपीएसलॉन के समूह के साथ आने के बजाय, मैं इस twos तारीफ तुलना जैसे कुछ का उपयोग करना चाहता था। इस प्रकार पूरे एकाधिक EPSILON मुद्दे से परहेज।
एक ही प्रकार की समस्या किसी भी प्रकार के सॉफ़्टवेयर पर लागू हो सकती है जो तृतीय पक्ष डेटा को संसाधित करती है और फिर मूल के साथ अपने परिणामों को सत्यापित करने की आवश्यकता होती है। इन मामलों में आप यह भी नहीं जानते कि फ़्लोटिंग पॉइंट मान क्या दर्शाते हैं, आपको बस उनकी तुलना करना होगा। हम अपने औद्योगिक स्वचालन सॉफ्टवेयर के साथ इस मुद्दे में भाग गए।
संपादित करें:
एलओएल, यह विभिन्न लोगों द्वारा ऊपर और नीचे मतदान किया गया है।
मैं समस्या को उबाल दूंगा, दो मनमानी फ़्लोटिंग पॉइंट नंबर दिए गए हैं, आप कैसे निर्णय लेते हैं कि ईपीएसलॉन का उपयोग करना है? आप नहीं कर सकते
एक ईपीएसलॉन के साथ आप 1e23 और 1.0001e23 की तुलना कैसे कर सकते हैं और अभी भी एक ही ईपीएसलॉन का उपयोग करके 1e-23 और 5.2e-23 की तुलना कर सकते हैं? निश्चित रूप से, आप कुछ गतिशील ईपीएसलॉन चाल कर सकते हैं, लेकिन यह पूर्णांक तुलना करने के लिए संपूर्ण बिंदु है (जो पूर्णांक की सटीक आवश्यकता नहीं है)।
पूर्णांक तुलना संख्याओं की परिमाण के सापेक्ष एक ईपीएसलॉन का उपयोग करके दो फ्लोट की तुलना करने में सक्षम है।
संपादित करें
स्टीव, देखते हैं कि आपने टिप्पणियों में क्या कहा था:
"लेकिन आप जानते हैं कि आपके लिए समानता का मतलब क्या है ... इसलिए, आपको उपयुक्त ईपीएसलॉन मिलना चाहिए"।
इस कथन को कहने के लिए चारों ओर मुड़ें:
"यदि आप जानते हैं कि आपके लिए समानता क्या है, तो आपको एक उपयुक्त ईपीएसलॉन मिलना चाहिए।"
मैं जो कहने की कोशिश कर रहा हूं उसका पूरा बिंदु यह है कि ऐसे अनुप्रयोग हैं जहां हम नहीं जानते कि पूर्ण अर्थ में समानता का अर्थ क्या है, इस प्रकार हमें एक सापेक्ष तुलना का सहारा लेना है जो पूर्णांक संस्करण करने का प्रयास कर रहा है।