123456という形式の数値を123,456に変換しようとしていますが、.NET ToString()メソッドをN0のカスタム形式で使用すると簡単です。ToString()カスタム番号の書式設定で奇妙な場合
しかし、データの1つのケースでは、私はこのメソッドを使用している間に奇妙なフォーマットを取得しています。
この場合、コードをテストするために入力テーブルに対してDataTableを動的に生成しています。
DataTable dt = new DataTable();
dt.Columns.Add("Cases", typeof(Int32));
たとえば、書式設定が適用される前のデータは次のようになります。
-------------------------------------------- | Cases | 2495 | 3937 | 3207 | 4173 | 4265 | --------------------------------------------
このようにしたいと思います。
------------------------------------------------- | Cases | 2,495 | 3,937 | 3,207 | 4,173 | 4,265 | -------------------------------------------------
私はこのようなコードを使用して書式を設定してみます。
output.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N0");
(注:私はDataTableのを取り、別のDataTableにそれを移調していますので、奇妙なフォーマットの理由はある。)私は今、次のデータが返されます上記のフォーマットを使用して
。
-------------------------------------------------------------------------- | Cases | 01/02/0495 | 01/03/0937 | 01/03/0207 | 01/04/0173 | 01/04/0265 | --------------------------------------------------------------------------
私は、使用して1つの小数点でそれを試してみました:
私は以下の結果を与えたoutput.Rows[r][c] = Convert.ToInt32(input.Rows[c - 1][r + 1]).ToString("N01");
。
------------------------------------------------------ | Cases | 2495.0 | 3937.0 | 3207.0 | 4173.0 | 4265.0 | ------------------------------------------------------
数字がこのように書式設定できるという事実を受け入れるため、これは私に今混乱しています。
私が試した次のことは、文字列を書式設定するさまざまな方法でした。
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");
これらのどれも、どのようにしたいかという数字の形式はありません。私はどこに間違っているのかアドバイスできますか?私はポイントを逃したので、それは簡単ですか?
残念ながら、私はコードをテストするための例として入力DataTableを生成しているので、この例ではそうではありません。この場合のフィールドは、dt.Columns.Add( "Cases"、typeof(Int32))によって定義されます。私は私の質問を更新します。 –
その場合ですか?私はDataTableでフォーマットされたデータを保持することができませんか?そうであれば、なぜ他のDataTableでこれを行うことができましたか?フォーマットされていないデータを取り込んでフォーマットし、それを新しいDataTableに変換することをやっています。これは私のために働いていない最初の例です。 –
良いですが、書式設定されたデータを保持したい場合は、列が文字列であることを必ず伝えてください。さもなければ、(間違った)仮定をするかもしれません... –