288 votes

Comment puis-je formater un nombre en une chaîne de zéros?

Je suis très novice en C#. J'ai un certain nombre que j'ai besoin de convertir une chaîne de caractères. D'abord, j'ai utilisé ceci:

Key = i.ToString();

Mais je me rends compte que c'est être triées dans un ordre curieux et j'ai donc besoin de remplissage par des zéros. N'importe qui peut aider et me dire comment je pourrais faire cela?

392voto

Mario Points 16720

Plutôt simple:

Key = i.ToString("D2");

D signifie "nombre décimal", 2 pour le nombre de chiffres à imprimer.

Note de côté: Est-il une vraie raison de l'aide de la chaîne de tri au lieu d'une simple comparaison des entiers?

225voto

Paul Points 1199

Voir la Chaîne de mise en forme en C# pour quelques exemples d'utilisation de la Chaîne.Format

Un meilleur exemple de mise en forme de l'int

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

77voto

Øyvind Bråthen Points 25211

Si vous aimez le maintenir fixe avec de par exemple 10 chiffres comme cela

Key = i.ToString("0000000000");

Remplacer avec autant de chiffres que vous le souhaitez.

i de 123 va ensuite en Key être 0000000123.

37voto

firefox1986 Points 692

Édité comme mentionné dans le commentaire. String.PadLeft ne fonctionnerait pas pour les nombres négatifs, afin de l'utiliser:

i.ToString("D10")

Personnellement, j'utiliserais String.PadLeft
par exemple

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

Entraînerait 0000000321

Voir msdn Chaîne.PadLeft

14voto

Généralement Chaîne.Format("format", objet) est préférable à l'objet.ToString("format"). Par conséquent,

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

est préférable à

Key = i.ToString("000000");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X