आईईईई 754-1985: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
!लेवल | !लेवल | ||
!विड्थ | !विड्थ | ||
! | !कम्पलीट एक्यूरेसी से रेंज करें | ||
!एक्यूरेसी{{efn|Precision: The number of decimal digits precision is calculated via number_of_mantissa_bits * Log<sub>10</sub>(2). Thus ~7.2 and ~15.9 for single and double precision respectively.}} | !एक्यूरेसी{{efn|Precision: The number of decimal digits precision is calculated via number_of_mantissa_bits * Log<sub>10</sub>(2). Thus ~7.2 and ~15.9 for single and double precision respectively.}} | ||
|- | |- | ||
| Line 22: | Line 22: | ||
|लगभग 16 दशमलव अंक | |लगभग 16 दशमलव अंक | ||
|} | |} | ||
स्टैण्डर्ड पॉजिटिव और नेगेटिव इनफाइनाइट के लिए रिप्रजेंटेशन को भी परिभाषित करता है, [[नकारात्मक शून्य|नेगेटिव शून्य]], [[शून्य से विभाजन]] जैसे | स्टैण्डर्ड पॉजिटिव और नेगेटिव इनफाइनाइट के लिए रिप्रजेंटेशन को भी परिभाषित करता है, [[नकारात्मक शून्य|नेगेटिव शून्य]], [[शून्य से विभाजन]] जैसे इनवैलिड परिणामों को सुरक्षित करने के लिए पांच एक्सेप्शन, उन एक्सेप्शन्स का रिप्रजेंटेशन करने के लिए विशेष मान जिन्हें [[NaN]] कहा जाता है, ऊपर दिखाए गए छोटी नंबर्स का रिप्रजेंटेशन करने के लिए [[असामान्य संख्या|डिनॉर्मल नंबर्स]], और चार गोल मोड है। | ||
==नंबर्स का रिप्रजेंटेशन== | ==नंबर्स का रिप्रजेंटेशन== | ||
[[Image:IEEE 754 Single Floating Point Format.svg|right|frame|नंबर 0.15625 को सिंगल- | [[Image:IEEE 754 Single Floating Point Format.svg|right|frame|नंबर 0.15625 को सिंगल-एक्यूरेसी आईईईई 754-1985 फ़्लोटिंग-पॉइंट नंबर के रूप में दर्शाया गया है। स्पष्टीकरण के लिए टेक्स्ट देखें। ]] | ||
[[Image:IEEE 754 Double Floating Point Format.svg|right|frame|64 बिट आईईईई 754 में तीन | [[Image:IEEE 754 Double Floating Point Format.svg|right|frame|64 बिट आईईईई 754 में तीन फील्ड फ़्लोट होते हैं।]]आईईईई 754 फॉर्मेट में फ़्लोटिंग-पॉइंट नंबर्स में तीन फील्ड्स होते हैं: [[साइन बिट]], बायस्ड एक्सपोनेंट और फ्रैक्शन आदि। निम्नलिखित उदाहरण प्रत्येक का अर्थ बताता है। | ||
दशमलव नंबर 0.15625<sub>10</sub> बाइनरी में 0.00101<sub>2</sub> (अर्थात् 1/8 + 1/32) प्रदर्शित किया गया है। ( | दशमलव नंबर 0.15625<sub>10</sub> बाइनरी में 0.00101<sub>2</sub> (अर्थात् 1/8 + 1/32) प्रदर्शित किया गया है। (सबस्क्रिप्ट नंबर [[मूलांक|बेस]] प्रदर्शित करते हैं।) [[वैज्ञानिक संकेतन|साइंटिफिक नोटेशन]] के अनुरूप, जहां नंबर्स को दशमलव बिंदु के बाईं ओर अन्य-शून्य अंक के रूप में लिखा जाता है, हम इस नंबर को पुनः लिखते हैं जिससे कि इसमें बाइनरी बिंदु के बाईं ओर सिंगल 1 बिट होता है। हम तीन स्टेट्स द्वारा लेफ्ट किये गए बिट्स के ट्रांसफर की पूर्ति के लिए 2 की एप्रोप्रियेट पावर से मल्टीप्लाई करते हैं: | ||
: <math>0.00101_2 = 1.01_2 \times 2^{-3}</math> | : <math>0.00101_2 = 1.01_2 \times 2^{-3}</math> | ||
अब हम | अब हम फ्रैक्शन और एक्सपोनेंट को रीड कर सकते हैं: फ्रैक्शन .01<sub>2</sub> है और एक्सपोनेंट −3 है। | ||
जैसा कि चित्रों में प्रदर्शित किया गया है, आईईईई 754 में इस नंबर का रिप्रजेंटेशन करने वाले तीन | जैसा कि चित्रों में प्रदर्शित किया गया है, आईईईई 754 में इस नंबर का रिप्रजेंटेशन करने वाले तीन फील्ड हैं: | ||
: चिन्ह = 0, क्योंकि नंबर पॉजिटिव है (1 नेगेटिव प्रदर्शित करता है।)। | : चिन्ह = 0, क्योंकि नंबर पॉजिटिव है (1 नेगेटिव प्रदर्शित करता है।)। | ||
: बायस्ड | : बायस्ड एक्सपोनेंट = −3 + बायस है। 'सिंगल एक्यूरेसी' में, बायस '127' है, इसलिए इस उदाहरण में बायस्ड एक्सपोनेंट 124 है; 'डबल प्रिसिजन' में, बायस '1023' है, इसलिए इस उदाहरण में बायस्ड एक्सपोनेंट 1020 है। | ||
: | : फ्रैक्शन = .01000…<sub>2</sub>. | ||
आईईईई 754 | आईईईई 754 एक्सपोनेंट में [[ऑफसेट बाइनरी]] जोड़ता है जिससे कि कई स्टेट्स में नंबर्स की अपेक्षा उसी हार्डवेयर द्वारा सरलता से की जा सके जो साइंड 2-कॉम्प्लीमेंट इंटिजर्स की अपेक्षा करता है। बायस्ड एक्सपोनेंट का उपयोग करते हुए, दो पॉजिटिव फ़्लोटिंग-पॉइंट नंबर्स में से छोटी नंबर चिह्न और परिमाण इंटिजर्स के समान क्रम के पश्चात बड़ी नंबर से कम निकलती है। यदि दो फ़्लोटिंग-पॉइंट नंबर्स के भिन्न-भिन्न चिह्न हैं, तो चिह्न-और-परिमाण अपेक्षा बायस्ड एक्सपोनेंट के साथ भी कार्य करती है। चूँकि, यदि दोनों बायस्ड-एक्सपोनेंट फ़्लोटिंग-पॉइंट नंबर्स नेगेटिव हैं, तो क्रम को विपरीत कर दिया जाना चाहिए। यदि एक्सपोनेंट को, मान लीजिए, 2-कम्पलीट नंबर के रूप में प्रदर्शित किया जाता है, तो यह देखने के लिए अपेक्षा करना कि दो नंबर्स में से कौन सी बड़ी है, सुविधाजनक नहीं होता है। | ||
लीडिंग 1 बिट को ओमिटेड कर दिया गया है क्योंकि एक्सपैक्ट शून्य सभी नंबर्स लीडिंग 1 से प्रारंभ होती हैं; लीडिंग 1 इम्प्लीसिट है और वास्तव में इसे स्टोर करने की आवश्यकता नहीं है जो मुफ़्त में अतिरिक्त एक्यूरेसी प्रदान करता है। | |||
=== शून्य === | === शून्य === | ||
| Line 49: | Line 49: | ||
: पॉजिटिव शून्य के लिए चिह्न = 0, नेगेटिव शून्य के लिए 1 है। | : पॉजिटिव शून्य के लिए चिह्न = 0, नेगेटिव शून्य के लिए 1 है। | ||
: बायस्ड | : बायस्ड एक्सपोनेंट = 0 है। | ||
: | : फ्रैक्शन = 0 है। | ||
=== | === डिनॉर्मल नंबर्स === | ||
ऊपर वर्णित नंबर | ऊपर वर्णित नंबर रिप्रजेंटेशन को नॉर्मेलाइज़ कहा जाता है, जिसका अर्थ है कि इम्प्लीसिट लीडिंग बाइनरी अंक 1 है। अंडरफ्लो होने पर एक्यूरेसी की हानि को कम करने के लिए, आईईईई 754 में नॉर्मेलाइज़ रिप्रजेंटेशन में संभव से छोटे अंशों का रिप्रजेंटेशन करने की क्षमता सम्मिलित है। इम्प्लीसिट लीडिंग अंक 0 बनाता है। ऐसी नंबर्स को असामान्य नंबर्स कहा जाता है। उनमें नॉर्मेलाइज़ नंबर के रूप में कई [[महत्वपूर्ण अंक|सिग्नीफिकेंट डिजिट]] सम्मिलित नहीं होते हैं, किन्तु जब किसी ऑपरेशन का रिजल्ट शून्य नहीं होता है, किन्तु नॉर्मेलाइज़ नंबर द्वारा प्रदर्शित किये जाने के लिए शून्य के अधिक निकट होता है, तो वे एक्यूरेसी की क्रमिक हानि को सक्षम करते हैं। | ||
असामान्य नंबर को सभी 0 बिट्स के बायस्ड | असामान्य नंबर को सभी 0 बिट्स के बायस्ड एक्सपोनेंट के साथ प्रदर्शित किया जाता है, जो सिंगल एक्यूरेसी में −126 के एक्सपोनेंट का रिप्रजेंटेशन करता है (−127 नहीं), या दोहरी एक्यूरेसी में −1022 (−1023 नहीं) का रिप्रजेंटेशन करता है।<ref>{{cite book|last=Hennessy|title=कंप्यूटर संगठन और डिज़ाइन|year=2009|url=https://archive.org/details/computerorganiza00patt_779|url-access=limited|publisher=Morgan Kaufmann|page=[https://archive.org/details/computerorganiza00patt_779/page/n291 270]|isbn=9780123744937 }}</ref> इसके विपरीत, नार्मल नंबर का रिप्रजेंटेशन करने वाला सबसे छोटा बायस्ड एक्सपोनेंट 1 है (नीचे उदाहरण देखें)। | ||
==गैर-नंबर्स का रिप्रजेंटेशन == | ==गैर-नंबर्स का रिप्रजेंटेशन == | ||
किसी कैलकुलेशन की | किसी कैलकुलेशन की इन्फिनिटी या इनवैलिड रिजल्ट को प्रदर्शित करने के लिए बायस्ड-एक्सपोनेंट फील्ड सभी 1 बिट्स से कम्पलीट है। | ||
=== पॉजिटिव और नेगेटिव इनफाइनाइट === | === पॉजिटिव और नेगेटिव इनफाइनाइट === | ||
| Line 67: | Line 67: | ||
: पॉजिटिव इनफाइनाइट के लिए चिह्न = 0, नेगेटिव इनफाइनाइट के लिए 1 है। | : पॉजिटिव इनफाइनाइट के लिए चिह्न = 0, नेगेटिव इनफाइनाइट के लिए 1 है। | ||
: बायस्ड | : बायस्ड एक्सपोनेंट = सभी 1 बिट्स है। | ||
: | : फ्रैक्शन = सभी 0 बिट्स है। | ||
=== NaN === | === NaN === | ||
फ़्लोटिंग-पॉइंट अंकगणित के कुछ ऑपरेशन | फ़्लोटिंग-पॉइंट अंकगणित के कुछ ऑपरेशन इनवैलिड हैं, जैसे नेगेटिव नंबर का वर्गमूल लेता है। किसी इनवैलिड रिजल्ट तक पहुंचने की क्रिया को फ़्लोटिंग-पॉइंट अपवाद कहा जाता है। असाधारण रिजल्ट को "नॉट ए नंबर" के लिए NaN नामक विशेष कोड द्वारा प्रदर्शित किया जाता है। आईईईई 754-1985 में सभी NaN का फॉर्मेट यह है: | ||
: चिह्न = या तो 0 या 1 होता है। | : चिह्न = या तो 0 या 1 होता है। | ||
: बायस्ड | : बायस्ड एक्सपोनेंट = सभी 1 बिट्स है। | ||
: | : फ्रैक्शन = सभी 0 बिट्स को त्यागकर कुछ भी होता है (क्योंकि सभी 0 बिट्स इनफाइनाइट का रिप्रजेंटेशन करते हैं)। | ||
== | == सीरीज और एक्यूरेसी == | ||
[[File:IEEE 754 relative precision.svg|thumb|महत्वपूर्ण अंकों की निश्चित नंबर का उपयोग करके दशमलव रिप्रजेंटेशन की अपेक्षा में सिंगल (बाइनरी 32) और डबल | [[File:IEEE 754 relative precision.svg|thumb|महत्वपूर्ण अंकों की निश्चित नंबर का उपयोग करके दशमलव रिप्रजेंटेशन की अपेक्षा में सिंगल (बाइनरी 32) और डबल एक्यूरेसी (बाइनरी 64) नंबर्स की सापेक्ष एक्यूरेसी है। सापेक्ष एक्यूरेसी को यहां ulp(x)/x के रूप में परिभाषित किया गया है, जहां ulp(x) x के रिप्रजेंटेशन में [[अंतिम स्थान पर इकाई]] है, अर्थात x और अगले रिप्रजेंटेशन योग्य नंबर के मध्य का अंतर है।]]एक्यूरेसी को दो क्रमिक मंटिसा रिप्रजेंटेशन के मध्य न्यूनतम अंतर के रूप में परिभाषित किया गया है; इस प्रकार यह केवल मंटिसा में फंक्शन है; यद्यपि अंतर को दो क्रमिक नंबर्स के मध्य के अंतर के रूप में परिभाषित किया गया है।<ref>{{citation |title=Computer Arithmetic |author1=Hossam A. H. Fahmy |author2=Shlomo Waser |author3=Michael J. Flynn |url=http://arith.stanford.edu/~hfahmy/webpages/arith_class/arith.pdf |access-date=2011-01-02 |url-status=dead |archive-url=https://web.archive.org/web/20101008203307/http://arith.stanford.edu/~hfahmy/webpages/arith_class/arith.pdf |archive-date=2010-10-08}}</ref> | ||
[[एकल परिशुद्धता|'''सिंगल एक्यूरेसी''']] | [[एकल परिशुद्धता|'''सिंगल एक्यूरेसी''']] | ||
सिंगल- | सिंगल-एक्यूरेसी नंबर्स 32 बिट्स पर व्याप्त हैं। सिंगल एक्यूरेसी में: | ||
* शून्य के निकटतम पॉजिटिव और नेगेटिव नंबर्स (घातक | * शून्य के निकटतम पॉजिटिव और नेगेटिव नंबर्स (घातक फील्ड में सभी 0 के साथ असामान्य मान और फ्रैक्शन फील्ड में बाइनरी मान 1 द्वारा प्रदर्शित की जाती हैं) हैं: | ||
*: ±2<sup>−23</sup>×2<sup>−126</sup> ≈ ±1.40130{{e|−45}} | *: ±2<sup>−23</sup>×2<sup>−126</sup> ≈ ±1.40130{{e|−45}} | ||
* शून्य के निकटतम पॉजिटिव और नेगेटिव | * शून्य के निकटतम पॉजिटिव और नेगेटिव नॉर्मेलाइज़ नंबर्स (घातक फील्ड में बाइनरी मान 1 और फ्रैक्शन फील्ड में 0 के साथ प्रदर्शित की जाती हैं) हैं: | ||
*: ±1 × 2<sup>−126</sup> ≈ ±1.17549{{e|−38}} | *: ±1 × 2<sup>−126</sup> ≈ ±1.17549{{e|−38}} | ||
* शून्य से सबसे दूर की परिमित पॉजिटिव और परिमित नेगेटिव नंबर्स (घातक | * शून्य से सबसे दूर की परिमित पॉजिटिव और परिमित नेगेटिव नंबर्स (घातक फील्ड में 254 और फ्रैक्शन फील्ड में सभी 1 के साथ मान द्वारा प्रदर्शित की गई) हैं: | ||
*: ±(2−2<sup>−23</sup>) × 2<sup>127</sup><ref name="Kahan">{{Cite document | *: ±(2−2<sup>−23</sup>) × 2<sup>127</sup><ref name="Kahan">{{Cite document | ||
| author = William Kahan |author-link=William Kahan | | author = William Kahan |author-link=William Kahan | ||
| Line 97: | Line 97: | ||
| access-date = 2007-04-12 }}</ref> ≈ ±3.40282{{e|38}} | | access-date = 2007-04-12 }}</ref> ≈ ±3.40282{{e|38}} | ||
सिंगल एक्यूरेसी में दिए गए | सिंगल एक्यूरेसी में दिए गए एक्सपोनेंट के लिए कुछ उदाहरण सीमा और अंतराल मान है: | ||
{| class="wikitable" style="text-align:right;" | {| class="wikitable" style="text-align:right;" | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
! | ! रियल एक्सपोनेंट (अनबायस्ड) | ||
! | ! एक्सपोनेंट (बायस्ड) | ||
! न्यूनतम | ! न्यूनतम | ||
! अधिकतम | ! अधिकतम | ||
| Line 161: | Line 161: | ||
| ≈ 2.02824e31 | | ≈ 2.02824e31 | ||
|} | |} | ||
उदाहरण के लिए, 16,777,217 को 32-बिट फ़्लोट के रूप में एन्कोड नहीं किया जा सकता क्योंकि इसे 16,777,216 पर पूर्णांकित किया जाएगा। इससे ज्ञात होता है कि फ़्लोटिंग पॉइंट अंकगणित लेखांकन सॉफ़्टवेयर के लिए अनुपयुक्त क्यों है। चूँकि, रिप्रजेंटेशन योग्य सीमा के अंदर सभी | उदाहरण के लिए, 16,777,217 को 32-बिट फ़्लोट के रूप में एन्कोड नहीं किया जा सकता क्योंकि इसे 16,777,216 पर पूर्णांकित किया जाएगा। इससे ज्ञात होता है कि फ़्लोटिंग पॉइंट अंकगणित लेखांकन सॉफ़्टवेयर के लिए अनुपयुक्त क्यों है। चूँकि, रिप्रजेंटेशन योग्य सीमा के अंदर सभी इंटिजर्स जो 2 की पावर हैं, उन्हें बिना गोलाई के 32-बिट फ़्लोट में स्टोर किया जा सकता है। | ||
=== दोहरी एक्यूरेसी === | === दोहरी एक्यूरेसी === | ||
डबल- | डबल-एक्यूरेसी नंबर्स 64 बिट्स पर व्याप्त हैं। दोहरी एक्यूरेसी में: | ||
* शून्य के निकटतम पॉजिटिव और नेगेटिव नंबर्स (एक्सप | * शून्य के निकटतम पॉजिटिव और नेगेटिव नंबर्स (एक्सप फील्ड में सभी 0 के साथ असामान्य मान और फ्रैक्शन फील्ड में बाइनरी मान 1 द्वारा प्रदर्शित की जाती हैं) हैं | ||
*: ±2<sup>−52</sup>×2<sup>−1022</sup> ≈ ±4.94066{{e|−324}} | *: ±2<sup>−52</sup>×2<sup>−1022</sup> ≈ ±4.94066{{e|−324}} | ||
* शून्य के निकटतम पॉजिटिव और नेगेटिव | * शून्य के निकटतम पॉजिटिव और नेगेटिव नॉर्मेलाइज़ नंबर्स (एक्सप फील्ड में बाइनरी मान 1 और फ्रैक्शन फील्ड में 0 के साथ प्रदर्शित की जाती हैं) हैं: | ||
*: ±1 × 2<sup>−1022</sup> ≈ ±2.22507{{e|−308}} | *: ±1 × 2<sup>−1022</sup> ≈ ±2.22507{{e|−308}} | ||
* शून्य से सबसे दूर की परिमित पॉजिटिव और परिमित नेगेटिव नंबर्स (एक्सप | * शून्य से सबसे दूर की परिमित पॉजिटिव और परिमित नेगेटिव नंबर्स (एक्सप फील्ड में 2046 और फ्रैक्शन फील्ड में सभी 1 के साथ मान द्वारा प्रदर्शित की गई) हैं: | ||
*: ±(2−2<sup>−52</sup>)×2<sup>1023</sup><ref name="Kahan" />≈ ±1.79769{{e|308}} | *: ±(2−2<sup>−52</sup>)×2<sup>1023</sup><ref name="Kahan" />≈ ±1.79769{{e|308}} | ||
दोहरी एक्यूरेसी में दिए गए | दोहरी एक्यूरेसी में दिए गए एक्सपोनेंट के लिए कुछ उदाहरण रेंज और गैप मान है: | ||
{| class="wikitable" style="text-align:right;" | {| class="wikitable" style="text-align:right;" | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
! | ! रियल एक्सपोनेंट (अनबायस्ड) | ||
! | ! एक्सपोनेंट (बायस्ड) | ||
! न्यूनतम | ! न्यूनतम | ||
! अधिकतम | ! अधिकतम | ||
| Line 238: | Line 238: | ||
|} | |} | ||
''' | '''एक्सटेंडेड फॉर्मेट''' | ||
स्टैण्डर्ड राउंड-ऑफ | स्टैण्डर्ड राउंड-ऑफ एरर को कम करने के लिए, अंतिम रिजल्ट के लिए आवश्यक उच्च एक्यूरेसी पर आंतरिक कैलकुलेशन करने के लिए एक्सटेंडेड फॉर्मेट का उपयोग करने का अनुरोध करता है: स्टैण्डर्ड केवल ऐसे प्रारूपों के लिए न्यूनतम एक्यूरेसी और एक्सपोनेंट आवश्यकताओं को निर्दिष्ट करता है। [[x87]] 80-बिट एक्सटेंडेड फॉर्मेट सबसे अधिक कार्यान्वित एक्सटेंडेड फॉर्मेट है जो इन आवश्यकताओं को कम्पलीट करता है। | ||
== उदाहरण == | == उदाहरण == | ||
यहां सिंगल- | यहां सिंगल-एक्यूरेसी आईईईई 754 रिप्रजेंटेशन के कुछ उदाहरण दिए गए हैं: | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 250: | Line 250: | ||
! प्रकार | ! प्रकार | ||
! चिह्न | ! चिह्न | ||
! | ! रियल एक्सपोनेंट | ||
! | ! एक्सपोनेंट (बायस्ड) | ||
! | ! एक्सपोनेंट फील्ड | ||
! | ! फ्रैक्शन फील्ड | ||
! मान | ! मान | ||
|- | |- | ||
| Line 312: | Line 312: | ||
| ±(1−2<sup>−23</sup>) × 2<sup>−126</sup> ≈ ±1.18{{e|-38}} | | ±(1−2<sup>−23</sup>) × 2<sup>−126</sup> ≈ ±1.18{{e|-38}} | ||
|- | |- | ||
| सबसे छोटी | | सबसे छोटी नॉर्मेलाइज़ नंबर | ||
| style="text-align:center;"| * | | style="text-align:center;"| * | ||
| −126 | | −126 | ||
| Line 320: | Line 320: | ||
| ±2<sup>−126</sup> ≈ ±1.18{{e|-38}} | | ±2<sup>−126</sup> ≈ ±1.18{{e|-38}} | ||
|- | |- | ||
| सबसे बड़ी | | सबसे बड़ी नॉर्मेलाइज़ नंबर | ||
| style="text-align:center;"| * | | style="text-align:center;"| * | ||
| 127 | | 127 | ||
| Line 356: | Line 356: | ||
== फ़्लोटिंग-पॉइंट नंबर्स की अपेक्षा करना == | == फ़्लोटिंग-पॉइंट नंबर्स की अपेक्षा करना == | ||
नेगेटिव शून्य और पॉजिटिव शून्य के लिए बिट्स के दो | नेगेटिव शून्य और पॉजिटिव शून्य के लिए बिट्स के दो कॉम्बिनेशन को एक्सपैक्ट करके, प्रत्येक बिट कॉम्बिनेशन या तो NaN है या संबद्ध क्रम के साथ एफ़िनली एक्सटेंडेड रियल नंबर सिस्टम में अद्वितीय मान वाला नंबर है, जिस पर कभी-कभी विशेष ध्यान देने की आवश्यकता होती है (नीचे देखें)। बाइनरी रिप्रजेंटेशन में विशेष गुण होता है कि, NaN को एक्सपैक्ट करके, किसी भी दो नंबर्स की अपेक्षा चिह्न और परिमाण इंटिजर्स के रूप में की जा सकती है ([[endianness|एंडियननेस]] उद्देश्य इम्प्लीमेंट होते हैं)। 2 के पूरक पूर्णांकों के रूप में अपेक्षा करते समय: यदि साइन बिट फ्रैक्शन होते हैं, तो नेगेटिव नंबर पॉजिटिव नंबर से पूर्व होती है, इसलिए 2 का पूरक सही रिजल्ट देता है (इसके अतिरिक्त कि नेगेटिव शून्य और पॉजिटिव शून्य को समान माना जाना चाहिए)। यदि दोनों मान पॉजिटिव हैं, तो 2 की पूरक अपेक्षा पुनः एप्रोप्रियेट रिजल्ट देती है। अन्यथा (दो नेगेटिव नंबर्स), एप्रोप्रियेट एफपी क्रम 2 के पूरक क्रम के विपरीत है। | ||
फ़्लोटिंग पॉइंट गणनाओं में निहित राउंडिंग | फ़्लोटिंग पॉइंट गणनाओं में निहित राउंडिंग एरर परिणामों की एक्यूरेसी समानता के परीक्षण के लिए अपेक्षाओं के उपयोग को सीमित कर सकती हैं। एक्सेप्टिंग लिमिट का चयन करना कम्प्लेक्सिटी विषय है। सामान्य टेक्नोलॉजी अनुमानित अपेक्षा करने के लिए अपेक्षात्मक ईपीएसलॉन मान का उपयोग करना है।<ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/core/math/math_funcs.h#L302|title=Godot math_funcs.h|website=GitHub.com|date=30 July 2022 }}</ref> अपेक्षाएँ कितनी उदार हैं, इस पर निर्भर करते हुए, सामान्य मूल्यों में सिंगल-एक्यूरेसी के लिए <code>1e-6</code> या <code>1e-5</code>और दोहरी एक्यूरेसी के लिए <code>1e-14</code> सम्मिलित हैं।<ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/core/math/math_defs.h#L34|title=Godot math_defs.h|website=GitHub.com|date=30 July 2022 }}</ref><ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/modules/mono/glue/Managed/Files/MathfEx.cs#L18|title=गोडोट MathfEx.cs|website=GitHub.com}}</ref> अन्य सामान्य तकनीक यूएलपी है, जो यह परीक्षण करती है कि अंतिम स्थान के अंकों में क्या अंतर है, प्रभावी रूप से यह परीक्षण करती है कि दोनों मान कितने दूर हैं।<ref>{{cite web|url=https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/|title=Comparing Floating Point Numbers, 2012 Edition|website=randomascii.wordpress.com|date=26 February 2012 }}</ref> | ||
चूँकि अपेक्षात्मक उद्देश्यों के लिए नेगेटिव शून्य और पॉजिटिव शून्य को सामान्यतः समान माना जाता है, कुछ [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेज]] [[रिलेशनल ऑपरेटर]] और समान निर्माण उन्हें | चूँकि अपेक्षात्मक उद्देश्यों के लिए नेगेटिव शून्य और पॉजिटिव शून्य को सामान्यतः समान माना जाता है, कुछ [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेज]] [[रिलेशनल ऑपरेटर]] और समान निर्माण उन्हें फ्रैक्शन मानते हैं। [[जावा (प्रोग्रामिंग भाषा)|जावा]] लैंग्वेज विशिष्टता के अनुसार,<ref>{{cite web|url=http://java.sun.com/docs/books/jls/|title=जावा भाषा और वर्चुअल मशीन विशिष्टताएँ|website=Java Documentation}}</ref> अपेक्षा और समानता संचालक उन्हें समान | ||