2009-10-07 10 views
14
void Foo(float a){} //1 
void Foo(double a){} //2 overloaded 


Foo(1.0f);       //calls function 1 
Foo(1.0 /*double numeric suffix?*/); //calls function 2 

यदि नहीं, तो यह एकमात्र तरीका है जिसे हासिल किया जा सकता है? मैं कुछ आपरेशनों के दौरान डबल परिशुद्धता गणित सुनिश्चित करने, आदि मुख्य रूप से में दिलचस्पी है: करने के लिए संकलक अनुमति देने परक्या कोई डबल निर्दिष्ट करने के लिए कोई संख्यात्मक प्रत्यय है?

ulong j; 
double v; 

j = /*some value*/; 
if(j>0UL) 
    v = 1.0/j; //if 1.0 is set as a float by the compiler then 
       //could it be likely we lose some precision here 
       //if a double would allow for more precision? Is 
       //a cast the only means of ensuring double precision? 

अन्य सुझावों के लिए एक ऑपरेशन के दौरान प्रकार के ऑटो निर्धारित उपयोगी होगा।

उत्तर

29

सी ++ में एक प्रत्यय अनावश्यक है। कोई भी फ़्लोटिंग पॉइंट मान जिसमें 'एफ' प्रत्यय की कमी है, को डिफ़ॉल्ट रूप से कंपाइलर प्रकार डबल पर टाइप किया जाएगा।

संदर्भ: http://en.wikipedia.org/wiki/C_0x

+0

बिल्कुल मुझे आवश्यक जानकारी। धन्यवाद। – BuckFilledPlatypus

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

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