FORMATフォーマット関数

本ページには広告が含まれています。

指定された数値の左側をスペースで埋める関数です。文字が指定された場合その文字で埋めます。

構文
  1. UString = FORMAT( 数値, 幅, 小数点桁or16進指定 )
引数
数値 (Integer,String)必須
数値 もしくは文字
幅 (Integer,String)必須
出力される文字数(数値より指定幅が大きい時は左側をスペースにて補完)
数値ではなく文字が指定された場合は その文字で幅分を埋める
小数点桁 or 16進指定 (Integer)省略可
表示する小数点桁数、 また -1 が指定された場合は16進数表記にする
戻り値
フォーマットされた文字列

使い方

桁揃え

123の左側にスペースを入れて幅を5文字にします。

UWSC
PRINT FORMAT(123, 5)
結果
プレーンテキスト
  123

数値よりも小さい幅を指定した場合、数値をそのまま出力します。

以下は数値が12345で幅が4文字ですが、数値の幅の方が5桁と大きいため数値がそのまま出力されます。

UWSC
PRINT FORMAT(12345, 4)
結果
プレーンテキスト
12345

数値1234.56789に対して、幅8桁、小数点以下2桁の条件でフォーマットします。

小数点以下2桁までの概数は1234.57となり、文字数は7文字で幅8桁に1桁足りないので左側に1文字分スペースが入ります。

UWSC
PRINT FORMAT(1234.56789, 8, 2)
結果
プレーンテキスト
 1234.57

幅(第二引数)と小数点以下の桁数(第三引数)をともに指定して両方の条件を満たすことができない場合、幅が優先されます。

以下は数値1234.56789を幅5桁、小数点以下3桁という条件ですが、数値を左から5桁で小数点以下3桁まで届かないため1234.と出力されます。

UWSC
PRINT FORMAT(1234.56789, 5, 3)
結果
プレーンテキスト
1234.

ゼロ埋め(ゼロパディング)

FORMAT関数で指定幅になるようにスペースを追加したあとにREPLACE関数でスペースを0に置換すると、ゼロ埋めすることができます。

以下は5を3桁でゼロ埋めする例。

UWSC
PRINT REPLACE(FORMAT(5, 3), " ", "0")
結果
プレーンテキスト
005

16進数表記にする

第三引数に-1を指定して123を16進数表記にします。

UWSC
PRINT FORMAT(123,, -1)
結果
プレーンテキスト
7B

マイナス値を指定することもできます。結果は16桁固定です。

以下は-256を16進数に変換する例 。

UWSC
PRINT FORMAT(-256,, -1)
結果
プレーンテキスト
FFFFFFFFFFFFFF00

数値を16進数表記に変換し、幅を4桁に揃えます。

UWSC
PRINT FORMAT(123, 4, -1)
結果
プレーンテキスト
  7B

端数処理(小数点以下)

numの値をketaに指定した小数点以下の桁数に丸めます。末尾の0も表示させます。

UWSC
DIM num = 46
DIM keta = 1
PRINT REPLACE(FORMAT(num, LENGTH(num)+keta+1, keta), " ", "")
結果
プレーンテキスト
46.0

arrayに指定した数値をすべて小数点以下3桁に丸めます。3桁に満たない場合はゼロ埋めされます。ketaが小数点以下の桁数です。

UWSC
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埋めをしています。

UWSC
DIM num = 256
PRINT REPLACE(FORMAT(num, 5), " ", "0")
結果
プレーンテキスト
00256
使用関数

指定した文字を幅分埋める

UWSC
DIM str = "*"
PRINT FORMAT(str, 10)
結果
プレーンテキスト
**********
使用関数

指定した文字を幅分埋める

2文字以上も可能ですが。指定した文字数を超える部分はカットされます。

UWSC
DIM str = "∽…∞…"
PRINT FORMAT(str, 21)
結果
プレーンテキスト
∽…∞…∽…∞…∽…∞…∽…∞…∽…∞…∽
使用関数