Comment puis-je formater un nombre en une chaîne de zéros?
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. Comment pourrais-je faire cela?
- double possible de C# convertir en int en string avec remplissage de zéros?
Vous devez vous connecter pour publier un commentaire.
Plutôt simple:
D
signifie "nombre décimal",2
pour le nombre de chiffres à imprimer.string.Format("D2", value)
vous aurezD2
dans la sortie. cela ne fonctionne pas. Nous devons utiliser"{0:00}"
dans ce cas.string.Format("{0:D2}", value)
à la place. Juste pour direstring.Format("D2", ...)
ne remplacera pas tout n'importe quoi, puisque vous ne disposez pas d'un espace réservé.value
est un int. Sivalue
est un double, par exemple, il devra êtrestring.Format("{0:00}", value)
Voir Mise en forme de chaîne en C# pour quelques exemples d'utilisation de la Chaîne.Format
En fait un meilleur exemple de mise en forme de l'int
ou de l'utilisation Chaîne D'Interpolation:
Si vous souhaitez garder une largeur fixe, par exemple de 10 chiffres, faites comme ceci
Remplacer avec autant de chiffres que vous le souhaitez.
i = 123
va ensuiteKey = "0000000123"
.Puisque personne n'a encore parlé de cela, si vous êtes à l'aide de C# version 6 ou supérieure (c'est à dire de Visual Studio 2015), alors vous pouvez utiliser chaîne d'interpolation pour simplifier votre code. Donc, au lieu d'utiliser
string.Format(...)
, il vous suffit de faire ceci:utilisation:
Voir Int32.ToString (MSDN), et Chaînes De Format Numérique Standard (MSDN).
Ou de l'utilisation
String.PadLeft
. Par exemple,Entraînerait
0000000321
. SiString.PadLeft
ne fonctionnerait pas pour les nombres négatifs.Voir Chaîne de caractères.PadLeft (MSDN).
Généralement Chaîne.Format("format", objet) est préférable à l'objet.ToString("format"). Par conséquent,
est préférable d',
Essayer:
Personnellement, cependant, je voudrais voir si vous ne pouvez pas trier sur l'entier directement, plutôt que de la représentation de chaîne.
Ici, je veux que mon pas de limite à 4 chiffres comme si elle est de 1 elle doit montrer 0001,si il 11 il devrait montrer que 0011..ci-Dessous sont le code.
J'ai mis en place ce code à générer de l'Argent reçu aucune.
Output="00001"
EDIT: Modifié pour correspondre à la PadLeft montant
Pour interpolées chaînes: