自由な書式編集
カスタム数値書式指定文字列を使えば、自由な書式に編集することができます。
カスタム数値書式は便利な機能なので、よく理解して使えば、とても有効です。
書式は{データ位置,桁数:カスタム書式指定文字列}
標準数値書式指定文字列と同様で、複数のデータが指定された場合に、データ位置を特定するために使います。先頭位置は 0 になります。
たとえば、num3とnum4を整数変数とすると、("{0,6:d}{1,5:d}", num3, num4)なら、1番目の{0,6:d}はnum3、2番目の{1,5:d}はnum4の表示方法を示します。
標準数値書式指定文字列と同様に表示桁数を指定します。表示データが指定桁数より短ければ、空き桁位置は空白になり、実データのほうが長ければ、指定桁数は無視されて、データの桁数が使われます。正整数を指定すると右詰、負整数を指定すると左詰になります。
数値書式指定文字列として、標準数値書式指定文字列と、カスタム書式指定文字列が用意されています。カスタム書式指定文字列を使用すれば、独自の書式で表示することができます。
カスタム数値書式指定文字列は、書式指定子のアルファベット1文字(大文字でも小文字でも同意)と精度指定子の0~99の組合せで指定します。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() Dim num1 As Integer = 9876 Dim num2 As Double = 12.499 Dim num3 As Double = 12.5 ' 【ゼロプレースホルダ】書式指定子の部分は0埋め ' 書式指定子:0 ' 01-->____9876 Console.WriteLine("01-->{0,8:0}",num1) ' 桁数が書式指定子より長ければその部分は空白 ' 02-->__009876 03-->__000012 Console.WriteLine("02-->{0,8:000000}",num1) Console.WriteLine("03-->{0,8:000000}",num2) ' 書式指定子に、00を指定すると1未満四捨五入 ' 04-->______12 05-->______13 Console.WriteLine("04-->{0,8:00}",num2) Console.WriteLine("05-->{0,8:00}",num3) ' 【桁プレースホルダ】書式指定子の部分は空白 ' 書式指定子:# ' 06-->____9876 Console.WriteLine("06-->{0,8:#}",num1) ' 桁数が書式指定子より長ければその部分は空白 ' 07-->____9876 Console.WriteLine("07-->{0,8:######}",num1) ' 書式指定子に ## を指定すると1未満四捨五入 ' 08-->______12 09-->______13 Console.WriteLine("08-->{0,8:##}",num2) Console.WriteLine("09-->{0,8:##}",num3) ' 【小数点】.で小数点の位置が決まる ' 書式指定子:. ' 10-->____12.5 11-->___12.50 12-->__12.499 Console.WriteLine("10-->{0,8:##.0}",num2) Console.WriteLine("11-->{0,8:##.00}",num2) Console.WriteLine("12-->{0,8:##.000}",num2) ' 【桁区切り記号】0または #の間に指定 ' 書式指定子:, ' 13-->___9,876 14-->___9,876 Console.WriteLine("13-->{0,8:0,0}",num1) Console.WriteLine("14-->{0,8:#,0}",num1) ' 【数値位取り】小数点の左にひとつ以上指定 ' 書式指定子:,( ,ひとつに付き1000で割った値) ' 15-->______30 16-->__30,000 Dim num4 As Integer = 30000000 Console.WriteLine("15-->{0,8:0,0,,}",num4) Console.WriteLine("16-->{0,8:0,0,}",num4) ' 【パーセントプレースホルダ】パーセント値表示 ' 書式指定子:%(100倍して%を付加) ' 17-->___55.5% 18-->__55.50% Dim num5 As Double = 0.555 Console.WriteLine("17-->{0,8:#.##%}",num5) Console.WriteLine("18-->{0,8:#.#0%}",num5) End Sub End Module