2009-04-21 8 views
25

मेरा कोड नीचे दी गई त्रुटि के कारण संकलित नहीं होगा :सी # कॉल निम्न विधियों या गुणों के बीच संदिग्ध है: 'System.Math.Round (डबल, int)' और 'System.Math.Round (दशमलव, int)

कॉल निम्न विधियों या गुणों के बीच अस्पष्ट है: 'System.Math.Round (डबल, पूर्णांक)' और 'System.Math.Round (दशमलव, पूर्णांक)

मेरे कोड

है
Math.Round(new FileInfo(strFilePath).Length/1024, 1) 

मैं इसे कैसे ठीक कर सकता हूं?

धन्यवाद

उत्तर

14

समस्या यह है कि आप एक पूर्णांक प्रभाग (एक int में भी परिणाम) बनाने के लिए और एक int परोक्ष double और decimal दोनों में बदला जा सकता है। इसलिए, आपको यह सुनिश्चित करना होगा कि अभिव्यक्ति के परिणामों में से एक में परिणाम हो; double शायद आप जो चाहते हैं।

Math.Round(new FileInfo(strFilePath).Length/1024.0, 1) 
40
Math.Round(new FileInfo(strFilePath).Length/1024d, 1) 
+5

इस तरह स्वीकार किए जाते हैं जवाब की तुलना में बेहतर है, तो आप नहीं परोक्ष ".0" का उपयोग, प्रत्यय स्पष्ट और प्राथमिक है 'डी' का उपयोग कर डाली चाहिए। – user275587

+1

बेहतर हाँ, लेकिन _why_ के रूप में स्वीकृत उत्तर में स्पष्टीकरण बेहद सहायक है। – jmgardn2

3
Math.Round((double) (new FileInfo(strFilePath).Length/1024), 1) 
+0

यह नकारात्मक 1 क्यों है? कृपया खुद को ऋणात्मक राटर समझाएं ताकि हम समझ सकें कि आपने ऐसा क्यों किया। ऐसा लगता है कि उसने ऐसा करने के लिए सिर्फ तर्क दिया है। – PositiveGuy

+0

यह – Anton

+0

काम नहीं करता है, मैं नीचे वोट से असहमत हूं क्योंकि अगर आप आसानी से गलती की निगरानी करते हैं तो उत्तर सही है। लेकिन आपको इसे 'नया फ़ाइलइन्फो (strFilePath) डालने की आवश्यकता थी। इसे बनाने के लिए कोष्ठक में लम्बाई/1024'। –

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