目次
指定された数値の左側をスペースで埋める関数です。文字が指定された場合その文字で埋めます。
- 構文
- UString = FORMAT( 数値, 幅, 小数点桁or16進指定 )
- 引数
- 数値 (Integer,String)必須
- 数値 もしくは文字
- 幅 (Integer,String)必須
- 出力される文字数(数値より指定幅が大きい時は左側をスペースにて補完)
数値ではなく文字が指定された場合は その文字で幅分を埋める - 小数点桁 or 16進指定 (Integer)省略可
- 表示する小数点桁数、 また -1 が指定された場合は16進数表記にする
- 戻り値
- フォーマットされた文字列
使い方
桁揃え
123の左側にスペースを入れて幅を5文字にします。
PRINT FORMAT(123, 5)
- 結果
123
数値よりも小さい幅を指定した場合、数値をそのまま出力します。
以下は数値が12345で幅が4文字ですが、数値の幅の方が5桁と大きいため数値がそのまま出力されます。
PRINT FORMAT(12345, 4)
- 結果
12345
数値1234.56789に対して、幅8桁、小数点以下2桁の条件でフォーマットします。
小数点以下2桁までの概数は1234.57となり、文字数は7文字で幅8桁に1桁足りないので左側に1文字分スペースが入ります。
PRINT FORMAT(1234.56789, 8, 2)
- 結果
1234.57
幅(第二引数)と小数点以下の桁数(第三引数)をともに指定して両方の条件を満たすことができない場合、幅が優先されます。
以下は数値1234.56789を幅5桁、小数点以下3桁という条件ですが、数値を左から5桁で小数点以下3桁まで届かないため1234.と出力されます。
PRINT FORMAT(1234.56789, 5, 3)
- 結果
1234.
ゼロ埋め(ゼロパディング)
FORMAT関数で指定幅になるようにスペースを追加したあとにREPLACE関数でスペースを0に置換すると、ゼロ埋めすることができます。
以下は5を3桁でゼロ埋めする例。
PRINT REPLACE(FORMAT(5, 3), " ", "0")
- 結果
005
16進数表記にする
第三引数に-1を指定して123を16進数表記にします。
PRINT FORMAT(123,, -1)
- 結果
7B
マイナス値を指定することもできます。結果は16桁固定です。
以下は-256を16進数に変換する例 。
PRINT FORMAT(-256,, -1)
- 結果
FFFFFFFFFFFFFF00
数値を16進数表記に変換し、幅を4桁に揃えます。
PRINT FORMAT(123, 4, -1)
- 結果
7B
端数処理(小数点以下)
numの値をketaに指定した小数点以下の桁数に丸めます。末尾の0も表示させます。
DIM num = 46
DIM keta = 1
PRINT REPLACE(FORMAT(num, LENGTH(num)+keta+1, keta), " ", "")
- 結果
46.0
arrayに指定した数値をすべて小数点以下3桁に丸めます。3桁に満たない場合はゼロ埋めされます。ketaが小数点以下の桁数です。
DIM array[] = 112, 45.4, 233.569, 451.4124, -12, -454.42625
DIM keta = 3
FOR item IN array
PRINT REPLACE(FORMAT(item, LENGTH(item)+keta+1, keta), " ", "")
NEXT
- 結果
112.000 45.400 233.569 451.412 -12.000 -454.426
プログラム実行例
数値の0埋め(ゼロパディング)をする
FORMAT関数で数値の左側をスペースで補完し、そのスペースを0に置換することで0埋めをしています。
DIM num = 256
PRINT REPLACE(FORMAT(num, 5), " ", "0")
00256
指定した文字を幅分埋める
DIM str = "*"
PRINT FORMAT(str, 10)
**********
指定した文字を幅分埋める
2文字以上も可能ですが。指定した文字数を超える部分はカットされます。
DIM str = "∽…∞…"
PRINT FORMAT(str, 21)
∽…∞…∽…∞…∽…∞…∽…∞…∽…∞…∽