質問

私は123456私はN0のカスタムフォーマットでの.NETのToString()メソッドを使用して十分に簡単見つける123,456にフォームで数値を変換しようとしています。

ただし、データのあるケースでは、私はこの方法を使用しながら、奇妙な形式を取得しています。

この場合、私は、コードをテストするために、私の入力テーブルのための動的た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 |
--------------------------------------------------------------------------

私は、用いたもの小数点でそれを試してみました:

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内の列のデータ型を設定したことを単純に私には見えます。 (それは現時点ではintのように見える)DateTimeとして、それが明示的にすることしてみます。

また - DataTableの仕事は、の保留のデータにあります。それをDISPLYしません。あなたは、私が(列が文字列であることを、それをを伝える限り、あなたはのような)と思い、stringsとしてプリフォーマットし、それを格納することができます - しかし、あなたがintとしてそれを保存している場合は、ディスプレイを忘れます。すぐにConvert.ToInt32を実行してきたように、あなたの仕事は終わりました。 DataGridView(または何でも)の仕事はどのようにそれが表示されています。教えてのことの "N0" について...

他のヒント

のToString( "N")のように単純に "N" を使用してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top