(int)myDouble
(int)Math.Truncate(myDouble)
से अलग है?क्या (int) myDouble कभी भी (int) Math से भिन्न होता है। टर्नकेट (myDouble)?
क्या कोई कारण है कि मुझे एक दूसरे को पसंद करना चाहिए?
(int)myDouble
(int)Math.Truncate(myDouble)
से अलग है?क्या (int) myDouble कभी भी (int) Math से भिन्न होता है। टर्नकेट (myDouble)?
क्या कोई कारण है कि मुझे एक दूसरे को पसंद करना चाहिए?
Math.Truncate
का उद्देश्य तब होता है जब आपको अपने परिणाम को दोहरे भाग के साथ डबल के रूप में रखने की आवश्यकता होती है। यदि आप इसे int में परिवर्तित करना चाहते हैं, तो सीधे कास्ट का उपयोग करें।
संपादित:
जब आप एक डबल या नाव मूल्य से एक अभिन्न प्रकार में बदलने का, मूल्य छोटा किया गया है: संदर्भ के लिए, "Explicit Numeric Conversions Table" से प्रासंगिक दस्तावेज है।
रूप इग्नेसियो वेज़क्वेज़-अब्राम(int)myDouble
द्वारा बताया (int)Math.Truncate(myDouble)
के रूप में एक ही तरह से असफल हो जायेगी जब myDouble बहुत बड़ी है।
तो आउटपुट में कोई अंतर नहीं है, लेकिन (int)myDouble
तेजी से काम कर रहा है।
+1: यह उत्तर एक प्रासंगिक बिंदु उठाता है। सिवाय इसके कि आपको छिद्रित डबल से '(int)' कास्ट निकालना होगा, क्योंकि आप अन्यथा एक ही स्थिति में समाप्त हो जाते हैं। – Douglas
@Ignacio Vazquez-Abrams, आप सही हैं। – dantuch
अगर हम उम्मीद करते हैं कि संख्या काफी बड़ी है तो हम '(लंबी) 'का उपयोग नहीं कर सके? – mpen
मेरा भयानक अनुमान यह होगा कि उत्तरार्द्ध सीएलआर एपीआई का एक स्पष्ट रूप से परिभाषित पहलू है, जबकि पूर्व भाषा विनिर्देश पर निर्भर करता है, भले ही यह बिल्कुल समान है। –
मुझे लगता है कि 'Math.Truncate' का उपयोग करना एक अनियंत्रित चरण है। – Oded
'Math.Truncate' का उद्देश्य तब होता है जब आपको अपना परिणाम 'डबल' के रूप में रखने के लिए कोई अंशकालिक भाग नहीं होता है। यदि आप इसे 'int' में परिवर्तित करना चाहते हैं, तो कास्ट का उपयोग करें। – Douglas