2013-09-26 10 views
14

Voglio avere numeri con un numero di cifre fisso.Come cambiare da 1 a 00001?

Esempio: 00001, 00198, 48484

posso fare in questo modo:

string value; 
    if (number < 10) 
     value = "0000" + number.ToString(); 
    else if (number < 100) 
     value = "000" + number.ToString(); 
    else if (number<1000) 
    ... 

ma questo è un po 'strano. C'è qualche funzione integrata per il mio scopo?

+1

Ohh, quante soluzioni ci sono e io sono nell'angolo del mondo !! – user2799350

risposta

21

Sì, c'è:

string value = String.Format("{0:D5}", number); 
3
string value = number.ToString("00000"); 
-2

parte String.Format, è anche possibile utilizzare String.PadLeft

value = number.ToString().PadLeft(5, '0'); 
+1

Funziona, cosa c'è di sbagliato con -1? – user2799350

+2

Perché chiamare 2 metodi quando il problema può essere risolto con 1 chiamata di metodo ?! – Abbas

4

Si dovrebbe utilizzare il metodo ToString() con formattazione personalizzata - see the docs. In particolare l'identificatore 0.

Sostituisce lo zero con la cifra corrispondente se presente; altrimenti, zero appare nella stringa del risultato.

esempio,

value = number.Tostring("00000"); 
19

Secondo il riferimento MS: http://msdn.microsoft.com/en-us/library/dd260048.aspx

È possibile pad un intero con zeri utilizzando la "D" standard numerico stringa di formato insieme ad un specificatore di precisione. È possibile eseguire il pad di numeri interi e in virgola mobile con zeri iniziali utilizzando una stringa di formato numerico personalizzato .

Quindi:

Per visualizzare l'intero come un valore decimale, chiamare sua ToString (String) metodo e passare la stringa "Dn" come valore del parametro di formato, dove n rappresenta la lunghezza minima della stringa.

Codice:

string value = number.ToString("D5"); 

.NET violino: http://dotnetfiddle.net/0U9A6N

3

si può fare in questo modo:

number.ToString("00000") 
2

Se si desidera restituire 5 cifre numeri, è necessario utilizzare il PadLeft() function;

int Value = 101; 
char pad = '0'; 
String sValue = Value.ToString(); 

sValue = sValue.s.PadLeft(5, char) 

In questo caso, non c'è bisogno di verificare se aggiungere 1, 2 o 3 zeri, si aggiungerà automaticamente il numero di zeri necessari per rendere il numero 5 cifre.

1
int input_number = Convert.ToInt32(txtinput.Text); 
string number_value = input_number.ToString("00000"); 

Spero che risolva il problema. Ha funzionato bene per me nel mio precedente progetto. Prova questo codice nel tuo sviluppo. Dovrebbe funzionare correttamente senza dubbio.

Problemi correlati