यह तकनीकी रूप से एक भाषा-निर्भर है, लेकिन लगभग सभी भाषाएं इस विषय को समान मानती हैं। जब एक अभिव्यक्ति में दो डेटा प्रकारों के बीच एक प्रकार का बेमेल होता है, तो अधिकांश भाषाएं एक तरफ डेटा डालने का प्रयास करेंगी=
पूर्वनिर्धारित नियमों के एक सेट के अनुसार डेटा को दूसरी तरफ से मिलान करने लिए ।
एक ही प्रकार (पूर्णांक, युगल, आदि) की दो संख्याओं को विभाजित करने पर परिणाम हमेशा एक ही प्रकार का होगा (इसलिए 'int / int' हमेशा int में परिणाम देगा)।
इस स्थिति में आपके पास
गणना के बादdouble var = integer result
पूर्णांक परिणाम दोगुना हो जाता है जिस स्थिति में भिन्नात्मक डेटा पहले से ही खो जाता है। (अधिकांश भाषाएं बिना किसी अपवाद या त्रुटि को बढ़ाए गलत प्रकार को रोकने के लिए यह कास्टिंग करेंगी)।
यदि आप परिणाम को एक दोहरे के रूप में रखना चाहते हैं तो आप एक ऐसी स्थिति बनाना चाहते हैं जहां आपके पास हो
double var = double result
ऐसा करने का सबसे आसान तरीका है कि किसी समीकरण के दाईं ओर अभिव्यक्ति को डबल करने के लिए मजबूर किया जाए:
c = a/(double)b
एक पूर्णांक और एक डबल के बीच विभाजन पूर्णांक को डबल में कास्टिंग करेगा (ध्यान दें कि जब गणित कर रहे हैं, तो कंपाइलर अक्सर सबसे विशिष्ट डेटा प्रकार को "अपकास्ट" करेगा यह डेटा हानि को रोकने के लिए है)।
a
ऊपर उठने के बाद, एक डबल के रूप में हवा होगी और अब आपके पास दो युगल के बीच विभाजन होगा। यह वांछित विभाजन और असाइनमेंट बनाएगा।
फिर, कृपया ध्यान दें कि यह भाषा विशिष्ट है (और यहां तक कि संकलक विशिष्ट भी हो सकती है), हालांकि लगभग सभी भाषाएं (निश्चित रूप से सभी जो मैं अपने सिर के ऊपर से सोच सकता हूं) इस उदाहरण को समान रूप से मानते हैं।