強火で進め

このブログではプログラム関連の記事を中心に書いてます。

string.Format() や ToString() などで使う書式指定子の解説

引数指定

何番目の引数を使うかを数値で指定。

string.Format("{1} {1} {0}", 12, 34);
34 34 12

10進数

書式指定子に D or d 。

string.Format("{1:D} {0:D}", 12, 34);
34 12

{1:D} の 1 は引数の番号を指定。 D で10進数を指定。この場合は 34 を10進数で表示。

string.Format("{1:d} {0:d}", 12, 34);
34 12

小文字 d でもOK、違いは無い。

浮動小数点数

書式指定子に F or f 。

string.Format("{0:F}", 1234.5678);
1234.57

小数点以下の桁数指定を省略した時は NumberFormatInfo の設定によって変わります。

string.Format("{0:f}", 1234.5678);
1234.57

小文字の f でもOK、違いは無い。

string.Format("{0:F1}", 1234.5678);
1234.6

小数点以下の桁数1表示。

string.Format("{0:F3}", 1234.5678);
1234.56780

小数点以下の桁数5表示。

16進数

書式指定子に X or x 。

string.Format("{0:X} {1:X}", 15, 16);
F 10
string.Format("{0:x} {1:x}", 15, 16);
f 10

X の場合にはアルファベット部分を大文字、 x の場合は小文字で表示。

型によっていい感じに表示

書式指定子に G or 無し。

string.Format("{0:G}", 12345.6789);
12345.6789
string.Format("{0}", 12345.6789);
12345.6789
string.Format("{0:G}", 123);
123
string.Format("{0}", 123);
123

金額

書式指定子に C 。

string.Format("{0:C}", 1200);
$1,200.00
string.Format(new System.Globalization.CultureInfo("ja-JP"), "{0:C}", 1200);
¥1,200

(1200).ToString("C", new System.Globalization.CultureInfo("ja-JP"));
¥1,200

日本のカルチャを指定した時。日本の金額表示の為、$が¥マークに変わり、小数点部分が無くなっている事が確認できます。

ゼロ埋め

書式指定子の後に桁数。

string.Format("{0:D5} {1:D3}", 12, 34);
00012 034

D5 の場合は5桁を指定。

桁数揃え

, の直後に数値で指定。書式指定子を使う場合には : で区切る。

string.Format("|{0,3}|", 12);
| 12|
string.Format("|{0,3:D}|", 12);
| 12|
string.Format("|{0,3:X}|", 12);
|  C|
string.Format("|{0,-3}|", 12);
|12 |

マイナスの数値を指定すると左揃え。

string.Format("|{0,-3:D}|", 12);
|12 |
string.Format("|{0,-3:X}|", 12);
|C  |

関連情報

標準の数値書式指定子
https://msdn.microsoft.com/ja-jp/library/dwhawy9k(v=vs.80).aspx

カルチャと書式・テキスト処理・暦 - Programming/.NET Framework/ロケール(カルチャ) - 総武ソフトウェア推進所
http://smdn.jp/programming/netfx/locale/1_infoes/