2011-03-24 12 views
158

मेरे पास एक संख्या है जिसे मुझे एक स्ट्रिंग में कनवर्ट करने की आवश्यकता है। सबसे पहले मैं इस प्रयोग किया है:मैं अग्रणी शून्य के साथ एक स्ट्रिंग में संख्या को कैसे प्रारूपित कर सकता हूं?

Key = i.ToString(); 

लेकिन मुझे पता है यह एक अजीब क्रम में सॉर्ट किया जा रहा है और इसलिए मैं यह शून्य से पैड की जरूरत है। मैं ये कैसे करूं?

+4

संभवतः डुप्लिकेट [सी # कनवर्टिंग int को पैडिंग ज़ीरो के साथ स्ट्रिंग करने के लिए?] (Http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros) – nawfal

उत्तर

229

बल्कि सरल।

+4

यदि आप 'string.Format (" D2 ", मान) का उपयोग करते हैं, तो आपको आउटपुट में' D2' मिलेगा। यह काम नहीं करता है। हमें इस मामले में '" {0:00} "' का उपयोग करना होगा। –

+27

आपको 'string.Format ("{0: D2}", मान) का उपयोग करना चाहिए। बस 'string.Format ("D2", ...) कह रहा है' कुछ भी नहीं बदलेगा इससे कोई फर्क नहीं पड़ता कि आपके पास प्लेसहोल्डर नहीं है। – infinitypanda

+2

@infinitypanda का एहसास है कि यह केवल तभी काम करेगा जब 'मूल्य' एक int है। उदाहरण के लिए, 'मान' एक डबल है, उदाहरण के लिए, इसे' string.Format ("{0:00}", मान) ' – derekantrican

11

प्रयास करें:

Key = i.ToString("000000"); 

निजी तौर पर, हालांकि, मैं अगर तुम नहीं बल्कि स्ट्रिंग प्रतिनिधित्व से सीधे पूर्णांक पर क्रमबद्ध नहीं कर सकते, देखना चाहते हैं।

45

आप इसे निश्चित चौड़ाई 10 अंक रखने के लिए, उदाहरण के लिए पसंद करते हैं, इस

Key = i.ToString("0000000000"); 

की तरह यह कर के रूप में आप की तरह के रूप में कई अंकों के साथ बदलें।

i = 123 परिणामस्वरूप Key = "0000000123" होगा।

149

String formatting in C# देखें के लिए कुछ उदाहरण String.Format

की

का उपयोग करता है वास्तव में formatting int

String.Format("{0:00000}", 15);   // "00015" 
23

उपयोग का एक बेहतर उदाहरण:

i.ToString("D10") 

देखें Int32.ToString (MSDN), और Standard Numeric Format Strings (MSDN)।

या String.PadLeft का उपयोग करें। उदाहरण के लिए,

int i = 321; 
Key = i.ToString().PadLeft(10, '0'); 

परिणामस्वरूप 0000000321 होगा। हालांकि String.PadLeft नकारात्मक संख्या के लिए काम नहीं करेगा।

String.PadLeft (एमएसडीएन) देखें। अंक मुद्रित करने के लिए की संख्या के लिए

Key = i.ToString("D2"); 

D "दशमलव संख्या" के लिए खड़ा है, 2:

+2

I एक अनुमान है कि नकारात्मक संख्याओं के साथ इसका उपयोग करने का प्रयास करने के बाद आपको पेंच कर देगा। – Mario

13

आमतौर पर स्ट्रिंग.फॉर्मैट ("प्रारूप", ऑब्जेक्ट) ऑब्जेक्ट करने के लिए बेहतर है। टॉस्ट्रिंग ("प्रारूप")। इसलिए,

String.Format("{0:00000}", 15); 

, बेहतर है

Key = i.ToString("000000"); 
+2

होना चाहिए आपको कहना चाहिए कि – cja

+3

हां, जैसा कि @cja ने पूछा, यह बेहतर क्यों है? और मैं इस धारणा के खिलाफ बहस नहीं कर रहा हूं, मैं जानना चाहता हूं क्यों। –

32

के बाद से कोई भी नहीं अभी तक इस का उल्लेख किया गया है, आप सी # संस्करण 6 या इसके बाद के संस्करण उपयोग कर रहे हैं (यानी विजुअल स्टूडियो 2015) तो आप string interpolation उपयोग कर सकते हैं सरल करने के लिए अपने कोड।string.Format(...) का उपयोग कर के बजाय, तुम सिर्फ यह कर सकते हैं:

Key = $"{i:D2}"; 
+0

अच्छा एक !!!!!!! – KyloRen

-1
int num=1; 
string number=num.ToString().PadLeft(5, '0') 

आउटपुट = "00001"

2

यहाँ मैं अपने कोई अगर यह होता है 1 यह के रूप में दिखाना चाहिए की तरह 4 अंकों में सीमित करना चाहते हैं 0001, अगर यह 11 है तो इसे 0011 के रूप में दिखाना चाहिए .. नीचे कोड हैं।

 reciptno=1;//Pass only integer. 

     string formatted = string.Format("{0:0000}", reciptno); 

     TxtRecNo.Text = formatted;//Output=0001.. 

मैंने मनी रसीद संख्या उत्पन्न करने के लिए इस कोड को लागू किया।

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