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
Version imprimable
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 :aie:) 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:
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: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: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.60Code:Convert.ToDouble(dt.Rows[0]["Estimation"]))).ToString("N2");
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: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:
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; }
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" :aie:Code:
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é :aie:
On peut switcher le thread sur une culture US et revenir sur la culture par défaut une fois la conversion effectuée.