2012-06-07 15 views
11

में शून्य रखें मुझे 40 अंकों का काउंटर वैरिएबल बनाने की आवश्यकता है। जब मैं int क्लास का उपयोग यह
0000000000000000000000000000000000000002सी # - वृद्धि संख्या और आगे

के रूप में 0000000000000000000000000000000000000001
और वेतन वृद्धि शुरू करना चाहिए, यह सब शून्य को काट देता है। समस्या यह है कि मुझे संख्या में वृद्धि करने की आवश्यकता है और उसके बाद इसे अग्रणी शून्यों की सही संख्या के साथ एक स्ट्रिंग में परिवर्तित करना होगा। कुल आकार 40 अंक होना चाहिए। तो अगर मैं उदाहरण के लिए 50 मारा, यह इस तरह दिखना चाहिए:

0000000000000000000000000000000000000050

कैसे मुझे लगता है कि क्या करना है और शून्य को बनाए रखने कर सकते हैं?

+1

आप (अधिक [BigInteger] की तरह कुछ http://msdn.microsoft.com/en के प्रयोग की आवश्यकता होगी कोशिश के साथ समाप्त हो गया -us/लाइब्रेरी/system.numerics.biginteger.aspx) 'int' की बजाय, अन्यथा वृद्धि क्रम में विफल हो जाएगी। – HABO

उत्तर

26

पूर्णांक और प्रारूप या पैड परिणाम का उपयोग करें जब आप एक स्ट्रिंग के लिए कनवर्ट करें।

के रूप में इस तरह के
int i = 1; 
string s = i.ToString().PadLeft(40, '0'); 

एक स्वरूपण विकल्प है कि मैं भी याद नहीं कर सकते हैं के लिए Jeppe Stig Nielson's answer देखें।

+1

तर्क विपरीत क्रम में हैं ... – Tigran

+0

सही किया गया है, और धन्यवाद। –

+0

@RysW, नहीं, यह आपके द्वारा निर्दिष्ट वर्ण के साथ निर्दिष्ट लंबाई तक पैड करता है। यह उस लंबाई से अधिक नहीं होगा। उदाहरण के लिए, "123"। पैडलिफ्ट (2, '0') बस "123" –

19

का उपयोग कर

int myNumber = ...; 
string output = myNumber.ToString("D40"); 
बेशक

, int कभी इतना बड़ा बढ़ सकता है के रूप में बाहर उन सभी स्थानों अंकों (सबसे बड़ी int केवल 10 अंक वाले) को भरने के लिए प्रयास करें।

1

बस इंट अलावा या किसी अन्य कार्रवाई करने, तो के अग्रणी 0 की पर्याप्त संख्या के साथ स्ट्रिंग के लिए वापस परिवर्तित करने के लिए अपने स्ट्रिंग परिवर्तित:

// 39 zero's + "1" 
string initValue = new String('0', 39) + "1"; 

// convert to int and add 1 
int newValue = Int32.Parse(initValue) + 1; 

// convert back to string with leading zero's 
string newValueString = newValue.ToString().PadLeft(40, '0'); 
0

मैं दूसरे दिन कुछ इसी तरह करना था, लेकिन मैं केवल दो शून्य की जरूरत है। मैं

string str = String.Format("{0:00}", myInt); 

सुनिश्चित नहीं हैं कि अगर यह सबूत मूर्ख लेकिन

String.Format("{0:0000000000000000000000000000000000000000}", myInt) 
संबंधित मुद्दे