2008-11-02 18 views
21

क्या कोई मूल सी ++ वैरिएबल प्रकार है जो डबल से "बड़ा" है?
नाव 7
डबल 15 है (बेशक संकलक के आधार पर)
क्या बड़ा है कि देशी, या यहाँ तक कि गैर देशी है है है?डबल से बड़ा क्या है?

+0

मैं आमतौर पर 4 के रूप में नाव और 8 के रूप में दोहरी के बारे में सोच है, लेकिन आप दशमलव अंक की अनुमानित संख्या का जिक्र कर रहे हैं, जबकि मैं प्रयोग किया जाता बाइट की संख्या की बात कर रहा हूँ। –

+16

एक तिहाई! (बाह डम, छ!) – Thanatos

उत्तर

28

सी ++ में long double है, लेकिन इस बात की कोई गारंटी नहीं है कि यह सादा double से अधिक सटीक है। X86 प्लेटफार्म पर, आमतौर पर double 64 बिट्स है, और long double या तो 64 या 80 बिट्स (जो आपको सही याद करते हैं, तो आपको 1 9 महत्वपूर्ण आंकड़े मिलते हैं)।

आपका लाभ भिन्न हो सकते हैं, खासकर यदि आप 86 पर नहीं कर रहे हैं।

2

लंबे डबल, लेकिन यह आम तौर पर अभी भी बहुत सटीक के 15 स्थानों है।

3

भी कुछ विभिन्न bigfloat/bigint सी के लिए भर के पुस्तकालयों ++ कि मनमाने ढंग से सटीक गणित की अनुमति देते हैं। माइक्रोसॉफ्ट कोडप्लेक्स पर this लाइब्रेरी है, लेकिन गुगलिंग आपको बहुत से अन्य लोगों को मिल जाएगी।

9

आप GNU MP उपयोग कर सकते हैं। इसकी floating-point functions में असीमित मंटिसा और 32-बिट या 64-बिट (देशी शब्द आकार के आधार पर) एक्सपोनेंट है। यह C++ wrapper के साथ भी आता है।

2

सी ++ लंबे डबल है, लेकिन यह अभी भी काफी सीमित है। अच्छे समय के लिए जीएनयू की जीएमपी लाइब्रेरी आज़माएं। आप जितनी बड़ी चाहें उतनी बड़ी संख्या सेट कर सकते हैं, और जब आप सामान्य + के बजाय gmp_add का उपयोग करते हैं तो यह बहुत मजेदार और हैकली है। मुझे यकीन है कि कहीं सी ++ रैपर है।

8

एक लंबा डबल आमतौर पर केवल 10 बाइट्स का उपयोग करता है, लेकिन संरेखण के कारण वास्तव में संरचना में 12 या 16 (कंपाइलर और विकल्पों के आधार पर) बाइट्स ले सकते हैं।

10 बाइट लंबा डबल एक 64-बिट अपूर्णांश प्रदान करता है; यह बहुत सुविधाजनक है जब आप परिशुद्धता के नुकसान के बिना फ्लोटिंग पॉइंट में 64 बिट पूर्णांक स्टोर करना चाहते हैं।

+1

यह क्यों गिराया गया था? क्या यह ग़लत है? –

2

लंबे डबल केवल कुछ CPUs 1.53 या उच्चतर multiprecision है आप हालांकि इसका इस्तेमाल करने की अनुमति देगा ...

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