stringクラスのFormatメソッドを使うと、指定した形式に基づいてオブジェクトの値を文字列に変換する事ができます。
基本的な使い方
string.Formatメソッドは、1番目の引数で指定した文字列に2番目以降の引数を値を埋め込む事ができます。埋め込む場所は {0} のようにカッコで囲み引数の番号を記述します。
txt = string.Format("値は{0}と{1}です。", 10, "ABC");
txt = string.Format("{{値}}は{0}です。", 10); //文字列にカッコ{}を使いたい時は{{のように2回続けて書きます
値は10とABCです。
{値}は10です。
桁数を指定する
埋め込む値の桁数を指定する事ができます。
桁数はカッコの中の番号の後にカンマ , で区切って桁数を指定します。
プラスで桁数を指定すると右寄せ(左側をスペースで埋める)になり、
マイナスで桁数を指定すると左寄せ(右側をスペースで埋める)になります。
string.Format("値は{0,5}です。", 10);
string.Format("値は{0,-5}です。", "ABC");
値は 10です。
値はABC です。
書式を指定する
"C"または"c"
通貨の書式です。
数値型のみサポートします。
OSの地域設定に従ってその国の通貨単位がつけられます。
小数点の桁数も通貨の単位によって変わります。(書式識別子の後に桁数を指定する事も可能)
第1引数にCultureInfoクラスを指定する事で、通貨単位を任意に変更できます。
string.Format("{0:C}", 10.123); string.Format("{0:C}", -10.123); string.Format("{0:C2}", -10.123); string.Format(new CultureInfo("en-US"), "{0:C}", 10.123); string.Format(new CultureInfo("fr-FR"), "{0:C}", -10.123);
¥10 -¥10 -¥10.12 $10.12 -10,12 €
"D"または"d"
10進数型の書式です。
整数型のみサポートします。
書式識別子の後に桁数を指定する事も可能で先頭が0埋めされます。
string.Format("{0:D}", 10); string.Format("{0:D}", -10); string.Format("{0:D5}", 10); string.Format("{0:D5}", -10);
10 -10 00010 -00010
"E"または"e"
指数の書式です。
数値型のみサポートします。
小数点以下桁数のデフォルトは6ですが、書式識別子の後に桁数を指定する事も可能です。
string.Format("{0:E}", 10.1234567); string.Format("{0:e}", -10.1234567); string.Format("{0:e2}", 10.1234567); string.Format("{0:E2}", -10.1234567);
1.012346E+001 -1.012346e+001 1.01e+001 -1.01E+001
"F"または"f"
固定小数点の書式です。
数値型のみサポートします。
小数点以下桁数のデフォルトは2ですが、書式識別子の後に桁数を指定する事も可能です。
string.Format("{0:F}", 10.1234567); string.Format("{0:f}", -10.1234567); string.Format("{0:f5}", 10.1234567); string.Format("{0:F5}", -10.1234567);
10.12 -10.12 10.12346 -10.12346
"N"または"n"
数値の書式です。桁数が多い場合は桁区切り文字 "," が入ります。
数値型のみサポートします。
string.Format("{0:N}", 1000000); string.Format("{0:n}", -1000000.1); string.Format("{0:n3}", 1000000.12345); string.Format("{0:N3}", -1000000.12345);
1,000,000.00 -1,000,000.10 1,000,000.123 -1,000,000.123
"P"または"p"
パーセントの書式です。数値に100を掛けて表示します。
数値型のみサポートします。
string.Format("{0:P}", 0.1); string.Format("{0:p}", -0.15); string.Format("{0:p3}", 0.12345); string.Format("{0:P3}", -0.12345);
10.00% -15.00% 12.345% -12.345%
"X"または"x"
16進数の書式です。
整数型のみサポートします。
string.Format("{0:X}", 10); string.Format("{0:x}", -10); string.Format("{0:x4}", 255); string.Format("{0:X4}", (short)-1); string.Format("{0:X4}", (int)-1);
A fffffff6 00ff FFFF FFFFFFFF
関連記事
- C#の値型と参照型の違い
- C#のコンストラクタでオーバーロード
- C#のコンストラクタの継承
- C#のジェネリックを使おう
- C#のデリゲート (delegate) って何?
- C#のデリゲートお手軽にする匿名メソッド
- C#のラムダ式【=>】って何?
- C#で基底クラスのメソッドを置き換えるオーバーライド
- C#でキャストとas演算子を使いこなす
- C#で型を判別するtypeofとis演算子
- C#の値型でもnullを扱えるようにするNullable
- C#のリソース解放にはIDisposableとusingを使おう
- C#のStringとstring、Int32とint 違いは・・・ない!
- C#でasync/awaitを使った非同期処理
- C#で文字列を指定の区切り文字で分割
- C#のstring.Formatで桁数や書式を指定する
- C#の配列やListをソートする
- C#の配列やListを検索する (Find,FindAll,FindIndex)
- C#の配列やListを高速に検索する (BinarySearch)
- C#の配列の中に指定の要素が存在するかを調べる(LINQ Contains)
- C#の配列の中に条件を満たす要素が存在するかを調べる(LINQ Any)
- C#の配列から条件に合う要素を抽出する(LINQ Where)
- C#の配列で要素毎の処理結果を得る(LINQ Select)
- C#の配列を並び替える(LINQ OrderBy,ThenBy)
- C#の配列をグループ毎に処理する(LINQ GroupBy)
- C#の配列を内部結合(INNER JOIN)する(LINQ Join)
- C#の配列から最初の要素を取り出す(LINQ First,FirstOrDefault)
- C#の配列の重複要素を削除する(LINQ Distinct)
- C#でフォルダ内のファイル名一覧を取得する
- C#でテキストファイルを読み込む
- C#でテキストファイルに書き込む
- C#でバイナリファイルを読み込む
- C#でバイナリファイルに書き込む
コメントをお書きください
Aki (水曜日, 15 5月 2019 09:17)
"16進数の書式です。数値に100を掛けて表示します。"
上記の後半は%の文の消し忘れだと思われます。
AraramiStudio (水曜日, 15 5月 2019 12:05)
Akiさん
ご指摘いただきましてありがとうございます。
正しくない内容となっていたので本文を修正しました。
ベジニー平 (金曜日, 08 9月 2023 13:35)
三江に鳴りました