数値型のToString()メソッドを呼び出す際に、数値の書式を指定して文字列化することができる。 また、Console.WriteLine()メソッドなどでもこの書式指定子を指定することができる。
Imports System Class SampleClass Public Shared Function Main(ByVal args() As String) As Integer ' 整数について Dim i As Integer = 123456 Console.WriteLine("整数値に関する書式指定文字列とその出力例") Console.WriteLine("指定なし: " + i.ToString()) ' 10進数 Console.WriteLine("D : " + i.ToString("D")) Console.WriteLine("D8: " + i.ToString("D8")) ' 16進数 (大文字) Console.WriteLine("X : " + i.ToString("X")) Console.WriteLine("X8: " + i.ToString("X8")) ' 16進数 (小文字) Console.WriteLine("x : " + i.ToString("x")) Console.WriteLine("x8: " + i.ToString("x8")) ' 実数について Dim d1 As Double = 3.1416 Dim d2 As Double = 123456.789 Console.WriteLine() Console.WriteLine("実数値に関する書式指定文字列とその出力例") Console.WriteLine("指定なし: {0}, {1}", d1, d2) ' 指数 Console.WriteLine("E : {0:E}, {1:E}", d1, d2) Console.WriteLine("E2: {0:E2}, {1:E2} ", d1, d2) Console.WriteLine("e4: {0:e4}, {1:e4} ", d1, d2) ' 固定小数点 Console.WriteLine("F : {0:F}, {1:F} ", d1, d2) Console.WriteLine("F0: {0:F0}, {1:F0} ", d1, d2) Console.WriteLine("F4: {0:F4}, {1:F4} ", d1, d2) Console.WriteLine("F8: {0:F8}, {1:F8} ", d1, d2) ' 一般 Console.WriteLine("G : {0:G}, {1:G} ", d1, d2) Console.WriteLine("G0: {0:G0}, {1:G0} ", d1, d2) Console.WriteLine("G2: {0:G2}, {1:G2} ", d1, d2) Console.WriteLine("G4: {0:G4}, {1:G4} ", d1, d2) ' 数値 Console.WriteLine("N : {0:N}, {1:N} ", d1, d2) Console.WriteLine("N4: {0:N4}, {1:N4} ", d1, d2) ' パーセント Console.WriteLine("P : {0:P} {1:P}", 0.25, 0.125) Return 0 End Function End Class
整数値に関する書式指定文字列とその出力例 指定なし: 123456 D : 123456 D8: 00123456 X : 1E240 X8: 0001E240 x : 1e240 x8: 0001e240 実数値に関する書式指定文字列とその出力例 指定なし: 3.1416, 123456.789 E : 3.141600E+000, 1.234568E+005 E2: 3.14E+000, 1.23E+005 e4: 3.1416e+000, 1.2346e+005 F : 3.14, 123456.79 F0: 3, 123457 F4: 3.1416, 123456.7890 F8: 3.14160000, 123456.78900000 G : 3.1416, 123456.789 G0: 3.1416, 123456.789 G2: 3.1, 1.2E+05 G4: 3.142, 1.235E+05 N : 3.14, 123,456.79 N4: 3.1416, 123,456.7890 P : 25.00% 12.50% Press any key to continue
さらに、通貨など文化や言語などに依存する表記の場合はカルチャを指定することもできる。
Imports System Imports System.Globalization Class SampleClass Public Shared Function Main(ByVal args() As String) As Integer Dim output As String ' 通貨型の例 Dim c1 As Decimal = 123456.789D Dim c2 As Decimal = 987654321D output = "通貨形式の出力例" + vbNewLine ' 現在のカルチャで出力(既定) Console.WriteLine(c1.ToString("C") + " " + c2.ToString("C") + " (" + CultureInfo.CurrentCulture.Name + ")") ' カルチャを指定した出力 Dim culture As CultureInfo ' 米国 culture = New CultureInfo("en-US") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' 英国 culture = New CultureInfo("en-GB") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' フランス culture = New CultureInfo("fr-FR") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' ドイツ culture = New CultureInfo("de-DE") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' イタリア culture = New CultureInfo("it-IT") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' ロシア culture = New CultureInfo("ru-RU") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' 韓国 culture = New CultureInfo("ko-KR") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) ' 中国 culture = New CultureInfo("zh-CN") Console.WriteLine(culture.Name + ": " + c1.ToString("C", culture) + " " + c2.ToString("C", culture)) Return 0 End Function End Class
\123,457 \987,654,321 (ja-JP) en-US: $123,456.79 $987,654,321.00 en-GB: £123,456.79 £987,654,321.00 fr-FR: 123 456,79 € 987 654 321,00 € de-DE: 123.456,79 € 987.654.321,00 € it-IT: € 123.456,79 € 987.654.321,00 ru-RU: 123 456,79р. 987 654 321,00р. ko-KR: ₩123,457 ₩987,654,321 zh-CN: ¥123,456.79 ¥987,654,321.00