J'ai un nombre que je dois convertir en chaîne. J'ai d'abord utilisé ceci:
Key = i.ToString();
Mais je me rends compte qu'il est trié dans un ordre étrange et je dois donc le remplir avec des zéros. Comment pourrais-je faire ça?
c#
string
string-formatting
Mandy Weston
la source
la source
Réponses:
Assez simple:
D
signifie "nombre décimal",2
pour le nombre de chiffres à imprimer.la source
string.Format("D2", value)
vous obtiendrezD2
la sortie. ça ne marche pas. Nous devons utiliser"{0:00}"
dans ce cas.string.Format("{0:D2}", value)
place. Le simple fait de direstring.Format("D2", ...)
ne remplacera rien quoi qu'il en soit puisque vous n'avez pas d'espace réservé.value
est un int. Sivalue
c'est un double, par exemple, il devra êtrestring.Format("{0:00}", value)
Voir Formatage de chaînes en C # pour des exemples d'utilisation de String.Format
En fait, un meilleur exemple de formatage int
ou utilisez l' interpolation de chaînes :
la source
Si vous souhaitez conserver une largeur fixe, par exemple 10 chiffres, faites-le comme ceci
Remplacez par autant de chiffres que vous le souhaitez.
i = 123
se traduira alors parKey = "0000000123"
.la source
Puisque personne ne l'a encore mentionné, si vous utilisez C # version 6 ou supérieure (c'est-à-dire Visual Studio 2015), vous pouvez utiliser l' interpolation de chaînes pour simplifier votre code. Donc, au lieu d'utiliser
string.Format(...)
, vous pouvez simplement faire ceci:la source
utilisation:
Voir Int32.ToString (MSDN) et chaînes de format numérique standard (MSDN).
Ou utilisez
String.PadLeft
. Par exemple,En résulterait
0000000321
. MaisString.PadLeft
ne fonctionnerait pas pour des nombres négatifs.Voir String.PadLeft (MSDN).
la source
Généralement, String.Format ("format", object) est préférable à object.ToString ("format"). Par conséquent,
est préférable à,
la source
Essayer:
Personnellement, cependant, je verrais si vous ne pouvez pas trier directement l'entier plutôt que la représentation de la chaîne.
la source
Pour les chaînes interpolées:
la source
Ici, je veux que mon non limite à 4 chiffres comme s'il était 1, il devrait montrer que 0001, s'il 11, il devrait montrer que 0011.. Ci-dessous sont le code.
J'ai implémenté ce code pour générer le reçu d'argent no.
la source
Sortie = "00001"
EDIT: modifié pour correspondre au montant PadLeft
la source