Bonjour, je récupère un chiffre sous form de 3584965456,60 mais je veux l'afficher dans mon report rdlc sous la form : 3.584.965.456,60
Merci
Bonjour, je récupère un chiffre sous form de 3584965456,60 mais je veux l'afficher dans mon report rdlc sous la form : 3.584.965.456,60
Merci
Bonjour,
Il existe des choses pour formater les numéros : Chaînes de format numérique
Si tu n'y trouves pas ton bonheur il y a encore les regex (je te laisse chercher, je n'y connais rien là dedant) ou encore une procédure maison (tu créés ta fonction qui te retourne la chaîne souhaitée
)
Bon courage,
ZenZiTone
Bouton droite sur ton rapport -> Propriété -> Code
Tu rajoute une fonction pour formalisée ton affichage
-> propriété de ton composant et tu appel la fonction
merci pour vos reponse :
j'ai fais comme ca :mais ca n'a pas marché
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 dt.Rows[0]["Estimation"] = dt.Rows[0]["Estimation"].ToString().Replace(".",","); dt.Rows[0]["Estimation"] = string.Format("{0:000.000.000.000.000,00}", dt.Rows[0]["Estimation"]);![]()
ce normal que ça ne marche pas. Ton data est en string et toi tu veux formater en numerique
Bonjour,
Je pense que la solution de charouel est la meilleure piste, sachant que tu peux donner le format que tu veux à ta zone de texte.
Clique droit sur la zone -> propriété -> Nombre -> (si rien ne te convient) Personnalisé -> un truc comme "000.000.000.000.000,000" devrait le faire !
Bon code,
J@ck.
voila j'ai changé :
maintenant ca marche mais il me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part dt.Rows[0]["Conversion"] = string.Format("{0:0,0,0,0,0.00}", Convert.ToDouble(dt.Rows[0]["Estimation"]));
320654 => 320 654.00 alors que le resultat recherché c'est 320,654.00 et aussi
5000 => 05 000.00 alors que le résultat souhaité est 5,000.00
Alors tu fait comme ça
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part dt.Rows[0]["Conversion"] = (string.Format("{0:0,0,0,0,0.00}", Convert.ToDouble(dt.Rows[0]["Estimation"]))).ToString().Replace(' ',',');
Pour les virgules :
Résultat : 3,584,965,456.60
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part Convert.ToDouble(dt.Rows[0]["Estimation"]))).ToString("N2");
Less Is More
Pensez à utiliser les boutons
,
et les balises code
Desole pour l'absence d'accents, clavier US oblige
Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.
pour lui l'espace entre les chiffre ce n'est pas un espace donc Replace(' ',',') ne change rien
Essaye la solution du @DotNetMatt
Si nn fait comme je te dis au début
ca ne change rien aussi (je suis sous c#)
Code : Sélectionner tout - Visualiser dans une fenêtre à part dt.Rows[0]["Conversion"] = string.Format("{0:0,0,0,0,0.00}", Convert.ToDouble(dt.Rows[0]["Estimation"]).ToString("N2"));
voila j'ai testé et ça fonctionne
mais tu dois le mettre dans une fonction
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var str = "3584965456,60"; var tt =str.Split(',')[0]; var newnumvber = str.Split(',')[1]; int i = 3; while ( i < tt.Length) { newnumvber = tt.Substring(tt.Length - i)+ '.'+ newnumvber; tt= tt.Replace(tt.Substring(tt.Length - i), ""); } if (i > tt.Length) { newnumvber=tt+"."+newnumvber; }
C'est sûr que si tu ne cherches pas un minimum ca ne risque pas de marcher
Plus besoin du string.Format :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part dt.Rows[0]["Conversion"] = Convert.ToDouble(dt.Rows[0]["Estimation"]).ToString("N2");
Less Is More
Pensez à utiliser les boutons
,
et les balises code
Desole pour l'absence d'accents, clavier US oblige
Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.
Petite question : Ca ne dépend pas de la Culture ?
Dans le cas de la France, les centaines sont séparées par des espaces et les décimales par une virgule.
Et pour info, pour ceux qui se demanderaient : N veut dire Number et 2 veut dire "2 après la virgule"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double chiffre = 2500254.539; string test = chiffre.ToString("N2", CultureInfo.GetCultureInfo("en-US").NumberFormat); // test = "2,500,254.54"![]()
Oui ca dépend de la culture, c'est vrai que je ne l'ai pas précisé
On peut switcher le thread sur une culture US et revenir sur la culture par défaut une fois la conversion effectuée.
Less Is More
Pensez à utiliser les boutons
,
et les balises code
Desole pour l'absence d'accents, clavier US oblige
Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.
Partager