लॉन्ग डबल

सी (प्रोग्रामिंग भाषा) और संबंधित प्रोग्रामिंग भाषाओं में,  फ़्लोटिंग-पॉइंट अंकगणितीय | फ़्लोटिंग-पॉइंट डेटा प्रकार को संदर्भित करता है जो अक्सर डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप से अधिक सटीक होता है, हालांकि भाषा मानक के लिए केवल उतना ही सटीक होना आवश्यक है जितना कि. सी के अन्य फ़्लोटिंग-पॉइंट प्रकारों के साथ, यह आवश्यक रूप से IEEE 754 के लिए मैप नहीं हो सकता है।

सी
में

इतिहास
ई> प्रकार मूल 1989 सी मानक में मौजूद था, लेकिन C मानक, या C99 के 1999 के संशोधन द्वारा समर्थन में सुधार किया गया, जिसने मानक पुस्तकालय (कंप्यूटर विज्ञान) को विस्तारित करने के लिए कार्यों को शामिल करने के लिए विस्तारित किया।  जैसे कि   और.

लंबे दोहरे स्थिरांक एल या एल (लोअर-केस एल) के साथ प्रत्यय वाले फ़्लोटिंग-पॉइंट स्थिरांक हैं, उदाहरण के लिए, 0.33333333333333333333333333333333L या 3.1415926535897932384626433832795029L चौगुनी सटीकता के लिए। प्रत्यय के बिना, मूल्यांकन C99#IEEE 754 फ़्लोटिंग-पॉइंट समर्थन|FLT_EVAL_METHOD पर निर्भर करता है।

कार्यान्वयन
X86 आर्किटेक्चर पर, अधिकांश C (प्रोग्रामिंग लैंग्वेज) कंपाइलर लागू होते हैं  C99 / C11 (C मानक संशोधन) मानकों (IEC) में निर्दिष्ट के रूप में विस्तारित परिशुद्धता#x86 विस्तारित परिशुद्धता प्रारूप | 60559 फ्लोटिंग-पॉइंट अंकगणित (अनुबंध एफ))।  x86 के लिए Microsoft Visual C++ एक अपवाद है, जो बनाता है   के लिए एक पर्यायवाची  . Microsoft Windows पर Intel C++ कंपाइलर विस्तारित परिशुद्धता का समर्थन करता है, लेकिन इसके लिए   के लिए स्विच करें   हार्डवेयर के विस्तारित परिशुद्धता प्रारूप के अनुरूप होने के लिए। कंपाइलर भी इस्तेमाल कर सकते हैं   चौगुनी परिशुद्धता के लिए #IEEE 754 चौगुनी-परिशुद्धता बाइनरी फ्लोटिंग-पॉइंट प्रारूप: बाइनरी128|IEEE 754 चौगुनी-परिशुद्धता बाइनरी फ्लोटिंग-पॉइंट प्रारूप (बाइनरी128)। एचपी-यूएक्स पर यह मामला है, सोलारिस (ऑपरेटिंग सिस्टम)/स्पार्क, 64-बिट या n32 अनुप्रयोग बाइनरी इंटरफ़ेस के साथ MIPS आर्किटेक्चर, ARM आर्किटेक्चर#AArc64|64-बिट ARM (AArc64) (मानक AAPCS कॉलिंग कन्वेंशन, जैसे Linux) का उपयोग करने वाले ऑपरेटिंग सिस्टम पर, और FLOAT (IEEE) के साथ z/OS. अधिकांश कार्यान्वयन सॉफ्टवेयर में हैं, लेकिन कुछ प्रोसेसरों में चौगुनी-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप # हार्डवेयर समर्थन है।

कुछ पावरपीसी सिस्टम पर,  डबल-डबल (अंकगणित)|डबल-डबल अंकगणित के रूप में कार्यान्वित किया जाता है, जहां एक   मान को दो डबल-परिशुद्धता मानों का सटीक योग माना जाता है, जो कम से कम 106-बिट सटीकता देता है; इस तरह के प्रारूप के साथ   प्रकार IEEE फ़्लोटिंग-पॉइंट मानक के अनुरूप नहीं है। अन्यथा,   का ही पर्यायवाची है   (दोहरी सटीकता), उदा. 32-बिट एआरएम वास्तुकला पर, ARM आर्किटेक्चर#AArc64|64-बिट ARM (AArc64) (Windows और मैकओएस ) और 32-बिट MIPS पर (पुराना ABI, a.k.a. o32)।

जीएनयू सी कंपाइलर के साथ,  x86 प्रोसेसर पर 80-बिट विस्तारित परिशुद्धता है, भले ही प्रकार के लिए उपयोग किए जाने वाले भौतिक भंडारण (जो कि 96 या 128 बिट हो सकते हैं) कुछ अन्य आर्किटेक्चर पर,   डबल-डबल (अंकगणित) हो सकता है | डबल-डबल (जैसे पावरपीसी पर   ) या 128-बिट चौगुनी सटीकता (उदाहरण के लिए SPARC ). जीसीसी 4.3 के अनुसार, x86 पर एक चौगुनी परिशुद्धता भी समर्थित है, लेकिन गैर-मानक प्रकार के रूप में  इसके बजाय. हालांकि x86 आर्किटेक्चर, और विशेष रूप से x86 पर x87 फ़्लोटिंग-पॉइंट निर्देश, 80-बिट विस्तारित-सटीक संचालन का समर्थन करता है, प्रोसेसर को स्वचालित रूप से डबल (या यहां तक ​​​​कि एकल) परिशुद्धता के लिए स्वचालित रूप से गोल करने के लिए कॉन्फ़िगर करना संभव है। इसके विपरीत, विस्तारित-परिशुद्धता मोड में, विस्तारित परिशुद्धता का उपयोग मध्यवर्ती संकलक-जनित गणनाओं के लिए किया जा सकता है, भले ही अंतिम परिणाम कम सटीकता (यानी C99#IEEE 754 फ़्लोटिंग-पॉइंट समर्थन|FLT_EVAL_METHOD == 2) पर संग्रहीत हों। लिनक्स पर जीसीसी के साथ, 80-बिट विस्तारित परिशुद्धता डिफ़ॉल्ट है; कई बीएसडी ऑपरेटिंग सिस्टम (फ्रीबीएसडी और ओपनबीएसडी) पर, डबल-प्रेसिजन मोड डिफ़ॉल्ट है, और  संचालन प्रभावी रूप से दोगुनी सटीकता के लिए कम हो जाते हैं। (नेटबीएसडी 7.0 और बाद में, हालांकि, 80-बिट विस्तारित परिशुद्धता के लिए डिफ़ॉल्ट है ). हालाँकि, FLDCW फ़्लोटिंग-पॉइंट लोड कंट्रोल-वर्ड निर्देश के माध्यम से एक व्यक्तिगत कार्यक्रम के भीतर इसे ओवरराइड करना संभव है। x86_64 पर, बीएसडी 80-बिट विस्तारित परिशुद्धता के लिए डिफ़ॉल्ट हैं। Visual C++ के साथ Microsoft Windows भी प्रोसेसर को डिफ़ॉल्ट रूप से डबल-प्रिसिजन मोड में सेट करता है, लेकिन इसे फिर से एक व्यक्तिगत प्रोग्राम (जैसे द्वारा) में ओवरराइड किया जा सकता है।  विजुअल सी ++ में कार्य करता है ). दूसरी ओर x86 के लिए Intel C++ कंपाइलर, डिफ़ॉल्ट रूप से एक्सटेंडेड-प्रिसिजन मोड को सक्षम करता है। IA-32 OS X पर,   80-बिट विस्तारित परिशुद्धता है।

अन्य विनिर्देश
CORBA में (3.0 के विनिर्देशन से, जो IEEE 754-1985|ANSI/IEEE Standard 754-1985 को इसके संदर्भ के रूप में उपयोग करता है), लंबा डबल डेटा प्रकार एक IEEE डबल-विस्तारित फ़्लोटिंग-पॉइंट संख्या का प्रतिनिधित्व करता है, जिसमें कम से कम एक प्रतिपादक होता है लंबाई में 15 बिट और GIOP/IIOP CDR के साथ कम से कम 64 बिट्स का एक हस्ताक्षरित अंश, जिसका फ़्लोटिंग-पॉइंट प्रकार फ़्लोटिंग पॉइंट नंबरों के लिए IEEE मानक स्वरूपों का सटीक रूप से पालन करता है, इसे IEEE 754-2008 बाइनरी128 a.k.a. चौगुनी प्रतीत होता है उस नाम का उपयोग किए बिना सटीकता।

यह भी देखें

 * चौगुनी सटीकता
 * विस्तारित परिशुद्धता