2009-03-03 12 views
12

मैं एक डेटाबेस फ़ील्ड से पूछताछ कर रहा हूं जो एक पैसा मान देता है, मैं इसे एक स्ट्रिंग में असाइन कर रहा हूं लेकिन यह अंत में अतिरिक्त 00 जोड़ रहा है।सी # स्ट्रिंग

उदा क्वेरी रिटर्न 30.00

मैं एक स्ट्रिंग (string value = Convert.ToString(ReturnValue);) को यह आवंटित लेकिन जब मैं यह उत्पादन, यह 30.0000

के रूप में दिखाया जा रहा है आप मुझे सलाह कर सकते हैं जहां मैं गलत जा रहा हूँ और सबसे अच्छा तरीका यह दृष्टिकोण?

+0

वैरिएबल का .NET प्रकार क्या है जिसे आप अपने डेटाबेस से वापस ले रहे हैं (स्ट्रिंग में कनवर्ट करने से पहले)? –

+0

ओपी स्ट्रिंग स्वरूपण कोड का उपयोग कर सकता है, यही वह है जो वे वहां हैं। –

उत्तर

1

इस प्रयास करें:

yourValueHere.ToString("0.00") 
3

मैं की तरह

string value = ReturnValue.ToString("0.00"); 

यह ToString अधिभार है कि एक प्रारूप स्ट्रिंग को स्वीकार करता है का उपयोग करता है कुछ का उपयोग करेंगे। उपरोक्त प्रारूप स्ट्रिंग "0.00" दो दशमलव स्थानों को निर्दिष्ट करती है।

6

क्या आप अपनी स्ट्रिंग को मुद्रा चरित्र का उपयोग करके स्वरूपित करना चाहते हैं?

यदि ऐसा है तो ...

decimal m = 3.4; 

string s = string.Format("{0:c}", m); 

// s will be £3.40, $3.40, etc depending on your locale settings 
+0

धन्यवाद, यह मेरे लिए ठीक काम करता है ... –

0

SQLServer में एक पैसा डेटा प्रकार परिशुद्धता के 4 दशमलव स्थानों के साथ एक दशमलव के बराबर है। मुझे लगता है कि यह दशमलव संरक्षित है जब दशमलव को स्ट्रिंग में परिवर्तित किया जाता है। रूपांतरण करने पर सबसे अच्छा विकल्प हमेशा प्रारूप स्ट्रिंग जैसे "#, ## 0.00" का उपयोग करना होगा।

0

मनी डेटा प्रकार में 4 दशमलव स्थानों की सटीकता है। आपको या तो ToString() तर्कों में प्रारूप निर्दिष्ट करने की आवश्यकता होगी या आप किसी स्ट्रिंग में कनवर्ट करने से पहले मान को बंद कर सकते हैं।

यदि आप .ToString() का उपयोग करते हैं, तो आपको जहां तक ​​पता है, आपको कोई गोल नहीं मिल रहा है। मुझे लगता है कि आप सिर्फ अंक खो देते हैं।

यदि आप दौर में हैं, तो आप केवल अंक बंद नहीं कर रहे हैं। यहाँ (अपरीक्षित कोड) गोलाई के लिए एक नमूना है:

string value = Math.Round(ReturnValue, 2).ToString(); 
12

MartGriff,

मेरे सबसे अच्छा सलाह SqlMoney प्रकार का उपयोग कर एक डबल करने के लिए इसे परिवर्तित करने के लिए किया जाएगा। वहां से, आप इसे आउटपुट कर सकते हैं हालांकि आप चाहेंगे!

यहाँ एक उदाहरण है:

System.Data.SqlTypes.SqlMoney ReturnValue; 

//Set your returnValue with your SQL statement 
ReturnValue = ExecuteMySqlStatement(); 

//Get the format you want 

//$30.00 
string currencyFormat = ReturnValue.ToDouble().ToString("c"); 

//30.00 
string otherFormat = ReturnValue.ToDouble().ToString("0.00"); 

अधिक स्वरूपण विकल्पों के लिए, MSDN की जाँच:

भाग्य का

http://msdn.microsoft.com/en-us/library/system.double.tostring.aspx

बेस्ट, मुझे आशा है कि इस मदद करता है।

2

मैं वर्तमान में वीएस 2013 सामुदायिक संस्करण का उपयोग कर एक नाविक वेब सिस्टम विकसित कर रहा हूं। मैं एक व्यापार मूल्य को एक टेक्स्टबॉक्स में आउटपुट करने का तरीका बनाने का प्रयास कर रहा था।

विधि है कि मैं का उपयोग किया

fieldName.Text = decimalValue.ToString ("सी");

यह पूरी तरह से काम करता है।

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