Je suis en train de convertir des nombres sous la forme 123456 en 123456 que je trouve assez facile en utilisant la méthode .NET ToString() avec un format personnalisé de N0.Bizarrerie avec ToString() mise en forme du nombre personnalisé
Cependant, dans un cas de données, je reçois des formats étranges en utilisant cette méthode.
Dans ce cas, je génère dynamiquement un DataTable pour que ma table d'entrée teste le code.
DataTable dt = new DataTable();
dt.Columns.Add("Cases", typeof(Int32));
Par exemple mes données ressemblent à ceci avant que le formatage ne soit appliqué.
-------------------------------------------- | Cases | 2495 | 3937 | 3207 | 4173 | 4265 | --------------------------------------------
Je voudrais que ça ressemble à ceci.
------------------------------------------------- | Cases | 2,495 | 3,937 | 3,207 | 4,173 | 4,265 | -------------------------------------------------
J'essaye de le formater en utilisant du code comme ça.
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N0");
(Note: La raison de la mise en forme étrange est parce que je prends un DataTable et transposer à un autre DataTable.)
En utilisant le formatage ci-dessus, je reçois les données suivantes retourné maintenant.
-------------------------------------------------------------------------- | Cases | 01/02/0495 | 01/03/0937 | 01/03/0207 | 01/04/0173 | 01/04/0265 | --------------------------------------------------------------------------
J'ai ensuite essayé avec un point décimal en utilisant:
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N01");
Ce qui m'a donné le résultat suivant. Cela m'a à présent rendu confus car il accepte le fait que le nombre peut être formaté de cette façon. La prochaine chose que j'ai essayé était différentes façons de formater les chaînes comme ça.
output.Rows[r][c] = string.Format("{0:N0}", input.Rows[c - 1][r + 1]);
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("#,##0");
Aucun de ceux-ci donnent le format numérique que je voudrais soit. Quelqu'un peut-il conseiller où je vais mal? Est-ce si simple que j'ai manqué le point?
Malheureusement, ce n'est pas le cas dans cet exemple car je génère un DataTable en entrée comme exemple pour tester le code.Le champ dans ce cas est défini par dt.Columns.Add ("Cases", typeof (Int32)); que je vais mettre à jour ma question avec. –
Est-ce le cas? Je ne suis pas en mesure de contenir des données formatées dans un DataTable? Si tel est le cas, pourquoi ai-je pu le faire pour d'autres DataTables? Ce que je fais pour prendre des données non formatées, le formater puis le transposer dans un nouveau DataTable. C'est le premier exemple qui n'a pas fonctionné pour moi. –
Fin - mais si vous souhaitez conserver des données formatées, assurez-vous de lui indiquer que les colonnes sont des chaînes. Sinon, il pourrait faire des suppositions (incorrectes) ... –