क्या एक फ़्लोटिंग-पॉइंट डेटा प्रकार (उदा। double
) की उपस्थिति सुनिश्चित करती है कि सभी +, -, *, /,%, आदि गणित परिचालन डबल ऑपरेंड मानते हैं?क्या एक समीकरण में प्रत्येक int को डबल करने के लिए डबल करता है?
यदि कहानी उससे अधिक जटिल है, तो क्या कोई संसाधन है जो इन नियमों का वर्णन करता है? क्या मुझे ऐसे प्रश्न नहीं पूछना चाहिए और समीकरण का परिणाम double
होने पर हमेशा int
से double
पर स्पष्ट रूप से डालना चाहिए। यहां कुछ समीकरण हैं जिनके बारे में मैं सोच रहा हूं। मैंने उद्देश्यपूर्वक संकलन और मेरे सिस्टम पर तब तक नहीं चलाया, क्योंकि यह ऐसी चीज है जो संकलक निर्भर हो सकती है।
int a(1), b(2), c(3);
double d(4.);
double result1 = a + b/d + c; // equal to 4 or to 4.5?
double result2 = (a + b)/d + c; // equal to 3 or to 3.75?
double result3 = a/b + d; // equal to 4 or to 4.5?
संचालन के आदेश पर विचार करें। यदि आवश्यक हो तो प्रत्येक ऑपरेशन प्रचारित होगा। – JCooper
समझ गया, इसलिए प्रत्येक ऑपरेशन में दो ऑपरेंड होते हैं (अधिकांश भाग के लिए) और यदि कोई 'फ्लोट' है और दूसरा 'int' है, तो 'int' को फ़्लोट करने के लिए प्रचारित किया जाता है। –
@LexFridman हां, ऐसा कुछ। –