मैं अग्रणी शून्य के साथ स्ट्रिंग में संख्या कैसे प्रारूपित कर सकता हूं?


246

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

Key = i.ToString();

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


जवाबों:


344

बल्कि साधारण:

Key = i.ToString("D2");

D"दशमलव संख्या" के लिए खड़ा है, 2प्रिंट करने के लिए अंकों की संख्या के लिए।


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

42
आपको string.Format("{0:D2}", value)इसके बजाय उपयोग करना चाहिए । केवल यह कहने string.Format("D2", ...)से कुछ नहीं बदलेगा कि आपके पास कोई प्लेसहोल्डर नहीं है।
अनंत

5
@infinitypanda को एहसास है कि यह केवल तभी काम करेगा जब valueकोई इंट हो। तो valueहै एक डबल, उदाहरण के लिए, यह होना होगाstring.Format("{0:00}", value)
derekantrican

अगर हम 'अग्रणी अंकों' के बारे में बात कर रहे हैं, तो मुझे लगता है कि इसका उत्तर i.ToString ("00") होगा; जहाँ "00" प्रमुख शून्य का प्रतिनिधित्व करता है .. आप इस राशि को अधिक से अधिक बढ़ा सकते हैं।
डेढ़

198

String.Format के कुछ उदाहरण उपयोगों के लिए C # में स्ट्रिंग फ़ॉर्मेटिंग देखें

वास्तव में प्रारूपण int का एक बेहतर उदाहरण है

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

या स्ट्रिंग इंटरपोलेशन का उपयोग करें :

$"{15:00000}";                           // "00015"

2
ध्यान दें कि String.Format ("{0: 00000}", "15"); "15" देता है, अर्थात यह एक तार पर काम नहीं करता है।
पॉल मैकार्थी

72

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

Key = i.ToString("0000000000");

आप जितने चाहें उतने अंकों से बदलें।

i = 123तब परिणाम होगा Key = "0000000123"


63

चूँकि किसी ने अभी तक इसका उल्लेख नहीं किया है, यदि आप C # संस्करण 6 या उससे ऊपर (अर्थात Visual Studio 2015) का उपयोग कर रहे हैं तो आप अपने कोड को सरल बनाने के लिए स्ट्रिंग प्रक्षेप का उपयोग कर सकते हैं । इसलिए उपयोग करने के बजाय string.Format(...), आप ऐसा कर सकते हैं:

Key = $"{i:D2}";

33

उपयोग:

i.ToString("D10")

देखें Int32.ToString (MSDN), और मानक संख्यात्मक स्वरूप स्ट्रिंग्स (MSDN)।

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

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

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

String.PadLeft (MSDN) देखें ।


4
मुझे लगता है कि एक बार जब आप इसे नकारात्मक संख्याओं के साथ उपयोग करने का प्रयास करेंगे, तो आपको पेंच लगेगा।
मारियो

धन्यवाद - मैंने दूसरा प्रयोग किया। मैंने ".TString ()" छोड़ दिया - यह अभी भी काम करता है।
सूर्यास्तकाल

14

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

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

के लिए बेहतर है

Key = i.ToString("000000");

4
हाँ, जैसा कि @cja ने पूछा, यह बेहतर क्यों है? और मैं दावे के खिलाफ नहीं कह रहा हूं, मैं जानना चाहता हूं कि क्यों।
क्रिस्टोफर किंग

पहला वाक्यविन्यास "अधिक सटीक, अनुमानित, और स्पष्ट" लगता है। और इसे कुंजी = स्ट्रिंग के रूप में बेहतर कहा जाएगा। फ़र्मफॉर्म ("{0: 00000}", 15); इसकी तुलना Key = i.ToString ("000000") से की जा रही है; पहले वाक्य रचना के साथ, मुझे पूरा यकीन है कि मुझे पता है कि वास्तव में मुझे जो परिणाम मिलेगा, और अगर मैं एक चरित्र से दूर हूँ, तो मुझे पता है कि वास्तव में क्या बदलना है (प्रारूप स्ट्रिंग। तो, संक्षेप में, मेरे लिए यह बेहतर है। भावनात्मक व्यक्तिगत प्राथमिकता, कमजोर रूप से एक लगभग-प्रशंसनीय अर्ध-कारण द्वारा समर्थित ;-) तो यह तब तय हो गया है?
डेवलपर

13

प्रयत्न:

Key = i.ToString("000000");

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



3

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

        reciptno=1;//Pass only integer.

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

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

मैंने मनी रसीद सं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.