標準数値書式指定文字列 [VB]

VB2012-2017

数値を編集

標準数値書式指定文字列を使うと、たとえば、3桁ごとにカンマを表示したり、マイナスの表示位置を調整したり、数値を編集して表示(出力)することができます。

標準数値書式指定文字列だけでも、かなり自由な数値編集ができます。カスタム書式指定文字列 を使用すれば、独自の書式で表示することができます。

{データ位置,桁数:書式指定文字列}

データ位置

複数のデータが指定された場合に、データ位置を特定するために使います。先頭位置は 0 になります。

たとえば、num1とnum2を整数変数とすると、("{0,6:d}{1,5:d}", num1, num2)の場合、1番目の{0,6:d}はnum1、2番目の{1,5:d}はnum2の表示方法を示しています。

d は、整数値表示を表し、負の整数の場合、負の符号が付加されます。

数値の指定は、整数 d のほかに、通貨値 c 、指数表記 e などいろいろ用意されています。下のサンプルプログラムを参考にしてください。

桁数

表示桁数を指定します。表示データが指定桁数より短ければ、空き桁位置は空白になります。実データのほうが長ければ、指定桁数は無視されて、データの桁数が使われます。

たとえば、{0,8:d6}とすれば、1桁から5桁までの場合には、6桁になるまで、前方(左側)は、0で埋められます。残りの2桁は空白になります。d66 のことを精度指定子といいます。

      Dim num1 As Integer = 9876
      ' 【10進数】整数のみ
      ' 書式指定子:D
      ' 精度指定子:最小桁数(最小桁数未満は0埋め)
      ' 総桁数が0埋めした桁数より長いときは空白
      ' __009876
      Console.WriteLine("{0,8:D6}",num1)

標準書式指定文字列

数値書式指定文字列として、標準数値書式指定文字列と、カスタム書式指定文字列が用意されています。カスタム書式指定文字列を使用すれば、独自の書式で表示することができます。

カスタム書式指定文字列の詳細はこちら

標準数値書式指定文字列は、書式指定子のアルファベット1文字(大文字でも小文字でも同意)と精度指定子の0~99の組合せで指定します。

Format(数値,書式)関数でも、数値をさまざまに編集できます。

Format関数の詳細はこちら

サンプルプログラムで利用方法を確認してください。

サンプルプログラム

書式指定子 E 以外は、小数点の位置が揃うように桁数を調整しています。

コメントの_(アンダースコア)は、空白を表しています。

ソースリストの枠内をクリックすると全選択できます。

Module Module1

  Sub Main()
      Dim num1_1 As Integer = 9876
      Dim num1_2 As Integer = -9876
      Dim num2 As Double = 12.499

      ' 【通貨】
      ' 書式指定子:C
      ' 精度指定子:小数部の桁数
      ' 01-->_\9,876.0  02-->\-9,876.0
      ' 03-->___\12.50
      Console.WriteLine("01-->{0,10:C1}",num1_1)
      Console.WriteLine("02-->{0,10:C1}",num1_2)
      Console.WriteLine("03-->{0,11:C2}",num2)

      ' 【10進数】整数のみ
      ' 書式指定子:D
      ' 精度指定子:最小桁数(最小桁数未満は0埋め)
      ' 総桁数が0埋めした桁数より長いときは空白
      ' 04-->__009876  05-->_-009876
      ' 06-->____9876  07-->___-9876
      Console.WriteLine("04-->{0,8:D6}",num1_1)
      Console.WriteLine("05-->{0,8:D6}",num1_2)
      ' 精度指定子省略時は、桁数まで空白で埋める
      Console.WriteLine("06-->{0,8:D}",num1_1)
      Console.WriteLine("07-->{0,8:D}",num1_2)

      ' 【指数】
      ' 書式指定子:E
      ' 精度指定子:小数部の桁数(省略すると 6)
      ' 08-->__9.876000E+003  09-->1.2499E+001
      Console.WriteLine("08-->{0,15:E}",num1_1)
      Console.WriteLine("09-->{0,15:E4}",num2)

      ' 【固定小数点】
      ' 書式指定子:F
      ' 精度指定子:小数部の桁数(省略時 少数点第2位)
      ' 10-->____9876.00  11-->______12.499
      Console.WriteLine("10-->{0,11:F}",num1_1)
      Console.WriteLine("11-->{0,13:F4}",num2)

      ' 【一般】最も簡潔な形式で表示
      ' 書式指定子:G
      ' 精度指定子:小数部の桁数(全桁数16に収まるまで)
      ' 12-->____9876.00  13-->______12.499
      Console.WriteLine("12-->{0,8:G}",num1_1)
      Console.WriteLine("13-->{0,12:G}",num2)

      ' 【数値】区切り表示(既定値は3桁ごとの ,)
      ' 書式指定子:N
      ' 精度指定子:小数部の桁数(省略時は既定値)
      ' 14-->___9,876.0  15-->_____12.499
      Console.WriteLine("14-->{0,10:N1}",num1_1)
      Console.WriteLine("15-->{0,12:N3}",num2)

      ' 【通貨】パーセント値表示(桁数指定は無視)
      ' 書式指定子:P
      ' 精度指定子:小数部の桁数(省略時は既定値)
      ' 16-->__55.50%
      Dim num3 As Double = 0.555
      Console.WriteLine("16-->{0,8:P2}",num3)

      ' 【16進数】整数のみ
      ' 書式指定子:X
      ' 精度指定子:最小桁数(最小桁数未満は0埋め)
      ' 17-->00002694
      Console.WriteLine("17-->{0,8:X8}",num1_1)
  End Sub

End Module