चूंकि आपके दोनों ऑपरेंड पूर्णांक हैं, इसलिए संकलक एक पूर्णांक विभाजन (जो नहीं करता है दशमलव भाग की गणना करें)। यदि कम से कम एक ऑपरेटिंग एक फ़्लोटिंग पॉइंट प्रकार है (जैसा कि आपके अन्य उदाहरणों में है) तो दूसरे को पदोन्नत किया जाता है और एक फ़्लोटिंग पॉइंट डिवीजन किया जाता है।
ठीक
मेक कम से कम एक चल बिन्दु प्रकार (double
या float
) की ऑपरेंड में से एक; यह एक double
शाब्दिक (60
, पूर्णांक है 60.0
या यहाँ तक कि 60.
double
है, 60.f
float
है) आप इस उदा .:
- कर बना सकते हैं
- एक डाली (
double(60)
, (double)60
) का उपयोग कर।
व्यक्तिगत तौर पर मैं सीधे double
शाब्दिक का उपयोग करना पसंद - डाली आधे रास्ते सभ्य compilers पर किसी भी प्रदर्शन की सजा है नहीं कि है, लेकिन यह "गलत" और सिर्फ सही प्रकार की एक शाब्दिक का उपयोग करने के संबंध में अत्यधिक शब्द लगता है।
आम आपत्तियों
"लेकिन मैं इसे एक double
को बताए कर रहा हूँ (जाहिर है जब दोनों ऑपरेंड चर रहे हैं और शाब्दिक नहीं आप कलाकारों का उपयोग करने के है )! "
कई newbies, इस तथ्य से उलझन में हैं क्योंकि वे लगता है कि परिणाम बताए एक double
को संकलक करने के लिए संकेत के कुछ प्रकार होना चाहिए रहे हैं। वास्तव में, यह नहीं है।
अभिव्यक्ति में किए गए गणना/प्रचार गंतव्य के प्रकार से पूरी तरह से स्वतंत्र हैं, जो कि अंतिम चरण है। परिणाम का उपयोग कैसे किया जाएगा इसके संबंध में उप-अभिव्यक्तियों का मूल्यांकन किया जाता है, इसलिए सभी प्रकार के प्रचार/संचालन केवल ऑपरेटरों के प्रकार से ही निर्भर होते हैं।
क्यों एक पूर्णांक विभाजन चाहते हैं?
कई भाषाओं स्वचालित रूप से फ़्लोटिंग पॉइंट डिवीजन निष्पादित करते हैं, भले ही तर्क दोनों पूर्णांक (उदा। वीबी 6, आईआईआरसी) होते हैं, क्योंकि यह नौसिखियों के लिए अधिक सहज महसूस करता है। ऐसा नहीं है कि सी/सी ++ में: विभाजन पूर्णांक होता है जब तर्क पूर्णांक होते हैं, क्योंकि कई मामलों में आपको केवल दशमलव के बारे में परवाह नहीं है, और/या प्रदर्शन कारणों से यह बेहतर है कि एफपीयू (पृष्ठभूमि दर्शन का उपयोग न करें) सी और सी ++ में "आप जो भी उपयोग नहीं करते हैं उसके लिए आप भुगतान नहीं करते हैं")।
स्पष्ट रूप से समस्या को अभिन्न विभाजन के लिए एक अलग ऑपरेटर का उपयोग करके संबोधित किया जा सकता था (वीबी, फिर, \
का उपयोग करता है), लेकिन आईएमएचओ हमारे पास सी ++ में पर्याप्त ऑपरेटर हैं। :)
- Nitpickers 'कोने: हाँ, यहाँ वास्तव में यह एक प्रारंभ, नहीं एक काम है, लेकिन हम गलत धारणा है उसी तरह की बात कर रहे हैं।
- ए "शाब्दिक" स्रोत कोड में शामिल एक मान है।
स्रोत
2012-10-31 18:00:26
पूर्णांक छंटनी के लिए हैलो कहें। – chris
@ क्रिस: इतनी जल्दी! – Yamaneko
@ विक्टरहुगो, शीर्षक प्रकार ने इसे दिया। बेशक इसका मतलब यह है कि यह एक बेहद अच्छा खिताब है। – chris