2011-02-02 25 views
35

यह एक साधारण सवाल हो सकता है लेकिन मैं सभी रूपांतरण विधि का प्रयास कर रहा हूं! और यह अभी भी त्रुटि है! क्या आप मेरी मदद करेंगे?मैं दशमलव कैसे परिवर्तित कर सकता हूं? दशमलव

दशमलव? के बाद से एक decimalnull नहीं किया जा सकता (नल दशमलव) दशमलव में

उत्तर

3

यह निर्भर करता है कि तुम क्या अगर decimal? करना चाहते हैं, null है। आपको लगता है कि डिफ़ॉल्ट 0 करना चाहते हैं, तो आप इस कोड (अशक्त कोलेसिंग ऑपरेटर का प्रयोग करके) का उपयोग कर सकते हैं:

decimal? nullabledecimal = 12; 

decimal myDecimal = nullabledecimal ?? 0; 
22

?? ऑपरेटर का उपयोग का प्रयास करें:

decimal? value=12; 
decimal value2=value??0; 

0 मूल्य आप चाहते है जब decimal? शून्य है।

10

आपको को अपने मूल्य प्राप्त करने के लिए एक शून्य प्रकार टाइप करने की आवश्यकता नहीं है।

आप और ValueNullable<T> द्वारा प्रकट संपत्तियों का लाभ उठाते हैं।

उदाहरण के लिए:

Decimal? largeValue = 5830.25M; 

if (largeValue.HasValue) 
{ 
    Console.WriteLine("The value of largeNumber is {0:C}.", largeValue.Value); 
} 
else 
{ 
    Console.WriteLine("The value of largeNumber is not defined."); 
} 

वैकल्पिक रूप से, आप एक शॉर्टकट के रूप 2.0 null coalescing operator में सी # या बाद में उपयोग कर सकते हैं।

-2

आप इसका उपयोग कर सकते हैं।

decimal? v = 2;

decimal v2 = Convert.ToDecimal(v);

यदि मान रिक्त है (v), यह 0.

+0

मैंने सोचा था कि Convert.ToDecimal() स्ट्रिंग प्रस्तुतियां थीं, नलिका दशमलव को दशमलव में परिवर्तित करने के लिए नहीं। यहां देखें: https://msdn.microsoft.com/en-us/library/9k6z9cdw(v=vs.110).aspx –

79

वहाँ बहुत सारे विकल्प है में परिवर्तित हो जाएगा ...

decimal? x = ... 

decimal a = (decimal)x; // works; throws if x was null 
decimal b = x ?? 123M; // works; defaults to 123M if x was null 
decimal c = x.Value; // works; throws if x was null 
decimal d = x.GetValueOrDefault(); // works; defaults to 0M if x was null 
decimal e = x.GetValueOrDefault(123M); // works; defaults to 123M if x was null 
object o = x; // this is not the ideal usage! 
decimal f = (decimal)o; // works; throws if x was null; boxes otherwise 
+1

+1। मैं 'GetValueOrDefault' पसंद करता हूं, क्योंकि यह सी # सिंटैक्स पर निर्भर नहीं है और इस तरह, VB.NET में भी उपयोग किया जा सकता है। यह भी आसानी से समायोज्य है, यदि प्रकार के डिफ़ॉल्ट मान आपके लिए काम नहीं करते हैं। – Neolisk

+0

कन्वर्ट के बारे में क्या। ToDecimal(); ? क्या मैं दशमलव के लिए दशमलव कवर के लिए इसका उपयोग कर सकता हूं? – ManirajSS

+0

@NullReference "दशमलव से दशमलव" रूपांतरण करने का क्या अर्थ होगा? [दशमलव कनवर्ट। टोडेसिमल (दशमलव)] (http://msdn.microsoft.com/en-us/library/8xhfcwt6 (v = vs.110) .aspx), लेकिन वह ** सचमुच ** केवल लौटाता है इनपुट मूल्य –

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