標準書式指定文字列は書式指定子と呼ばれるアルファベット1文字と精度指定子と呼ばれる0~99までの数値で表されます。
精度指定子は省略可能で、有効桁数やゼロの個数等を指定できます。
また、標準書式指定文字列を使わずに、自由に書式設定できるカスタム書式設定も可能です。
以下の例はカルチャを「日本」に設定しています。
Thread.CurrentThread.CurrentCulture = New CultureInfo("ja-JP")
Dim dblNum As Double
Console.WriteLine("==数値書式設定==")
dblNum = 12345
Console.WriteLine(dblNum.ToString("C")) '通貨
Console.WriteLine(CType(dblNum, Int32).ToString("D10")) '10進数
Console.WriteLine(dblNum.ToString("E")) '指数
dblNum = 200
Console.WriteLine(CType(dblNum, Int32).ToString("X")) '16進数
dblNum = 0.12345
Console.WriteLine(dblNum.ToString("F3")) '固定小数点
Console.WriteLine(dblNum.ToString("P")) 'パーセント
dblNum = 1234567890
Console.WriteLine(dblNum.ToString("#,##0;▲#,##0;ZERO"))
dblNum = -1234567890
Console.WriteLine(dblNum.ToString("#,##0;▲#,##0;ZERO"))
Console.WriteLine(dblNum.ToString("#,##0"))
dblNum = 0
Console.WriteLine(dblNum.ToString("#,##0;▲#,##0;ZERO"))
dblNum = 1234567890
Console.WriteLine(dblNum.ToString("###-###-####"))
Console.WriteLine("")
Console.WriteLine("==日付書式設定==")
Console.WriteLine(DateTime.Now.ToString("d")) 'ShortDatePattern
Console.WriteLine(DateTime.Now.ToString("F")) 'FullDateTimePattern
Console.WriteLine(DateTime.Now.ToString("ddd")) '曜日(省略形)
Console.WriteLine(DateTime.Now.ToString("dddd")) '曜日(完全名)
Console.WriteLine("元号:" + DateTime.Now.ToString("gg")) '元号
Console.WriteLine(DateTime.Now.ToString("日付→yyyy/MM/dd 時刻→HH:mm:ss")) 'カスタム設定
上記プログラムの出力結果は以下のようになります。
==数値書式設定==
\12,345
0000012345
1.234500E+004
C8
0.123
12.35%
1,234,567,890
▲1,234,567,890
-1,234,567,890
ZERO
123-456-7890
==日付書式設定==
2004/09/25
2004年9月25日 20:52:01
土
土曜日
元号:西暦
日付→2004/09/25 時刻→20:52:01