C # convertir int en chaîne avec des zéros de remplissage?


Réponses:


709

i.ToString().PadLeft(4, '0')- d'accord, mais ne fonctionne pas pour les nombres négatifs
i.ToString("0000");- forme explicite
i.ToString("D4");- spécificateur de format de forme courte
$"{i:0000}";- interpolation de chaîne (C # 6.0+)


28
i.ToString (). PadLeft (4, '0') ne fonctionne PAS pour les nombres négatifs, par exemple (-5) .PadLeft (4, '0') sera "00-5"
— Antonio Bakula

5
comment afficher une chaîne de longueur fixe. ??
— Mark Macneil Bikeio


2
cela a fonctionné pour moi String.Format ("{0: D4}", nombre);
— Arthur Melo

14
L'utilisation du raccourci au format String fonctionne également, par exemple $ "{i: D4}";
— JamesSugrue

275
i.ToString("D4");

Voir MSDN sur les spécificateurs de format.


4
cela a fonctionné pour moi String.Format ("{0: D4}", nombre);
— Arthur Melo

118

Voici un bon exemple:

int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well

66

Vous pouvez utiliser:

int x = 1;
x.ToString("0000");

26
Et une deuxième façon d'utiliser la même chaîne de format:string.Format("{0:0000}", x)
— Yodan Tauber

57

Interpolation de chaînes de style C # 6.0

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";

Celui-ci est très joli. Bon moyen d'éviter$"some text {x.ToStrig("D4")} after text"
— Bruno Miquelin


4

Peasy facile

int i = 1;
i.ToString("0###")

3
Je ne sais pas pourquoi vous avez voté, cela fonctionne et répond à la question des opérations
— maeneak


2

.NET a une fonction facile à faire dans la Stringclasse. Utilisez simplement:

.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  

Cela fonctionne si vous avez une longueur de chaîne fixe avec un nombre qui change. Merci pour cela! :)
— Fen Ignacio

0
int p = 3; // fixed length padding
int n = 55; // number to test

string t = n.ToString("D" + p); // magic     

Console.WriteLine("Hello, world! >> {0}", t);

// outputs: 
// Hello, world! >> 055

0
public static string ToLeadZeros(this int strNum, int num)
{
    var str = strNum.ToString();
    return str.PadLeft(str.Length + num, '0');
}

// var i = 1;
// string num = i.ToLeadZeros(5);

-2

Ici, je veux saisir mon numéro à 4 chiffres. Par exemple, s'il vaut 1, il doit afficher 0001, s'il est 11, il doit afficher 0011.

Voici le code qui accomplit cela:

reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001

J'ai implémenté ce code pour générer un numéro de reçu d'argent pour un fichier PDF.


1
Pourquoi vous modifiez ma réponse juste lettre majuscule ou structure.Is phrase il nécessaire Un développeur doit avoir préoccupation dans le code pas dans la structure de la phrase
— saktiprasad Swain

@Unheilig Je suis nouveau sur stackoverflow. Je pense que mon point est réduit lorsque vous avez modifié ma réponse.
— saktiprasad swain

3
Comme vous le faites remarquer, vous êtes nouveau dans cette communauté et peu familier avec le système d'édition, vous n'avez perdu aucun point de l'édition qui a été proposée et approuvée par la communauté. Les modifications qui ont été apportées ont en fait considérablement amélioré votre réponse
— Security Hound

1
Le vote est en fait anonyme. Le vote négatif a été émis en raison de la mauvaise grammaire. Aurait voté si vous aviez accepté la proposition de modification
— Security Hound


-5

Pour remplir int ipour correspondre à la longueur de chaîne de int x, lorsque les deux peuvent être négatifs:

i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')

2
Inutilement déroutant surtout quand il existe une solution très simple.
— Juls
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.