print文の後ろや
write文の装置番号の後ろに書式指定文字列を置いて出力文の書式を指定する。
よく使うものだけ簡単にまとめておく。より網羅的で詳細な説明は以下のリンクを参照。
+
FORMAT
指定なし
アスタリスク(
*)。
出力の先頭に半角スペースがひとつ置かれる(環境によって違うかもしれない)。
最後の例でやたら空白が多いのは、整数や浮動小数点数については一定のスペースが確保されているから。
文字列
aA: 左詰め
A文字で出力する。
Aを指定しない場合、文字変数の長さ分のスペースが用意される。
空白
Ax: 半角スペース
A個を出力する。
以下、出力がどのようになっているか分かりやすくするため、整数や浮動小数点数の前後にアンダーバーを出力している。
整数
iA: 右詰め
A桁; /v{A=0}のときは書き出す整数の桁数になる
iA.B: 右詰め
A桁(右
B桁内で
0パディング)
浮動小数点数
fA.B:
XXX.XXという形式で出力する。全
A桁(小数点含む), 小数部分
B桁。
A=0のときは整数部分は数値に合わせた桁数になる。
Aが小さすぎるなどして整数部の桁数が出力したい数字の整数部の桁数より小さくなると、出力エラーとなる。
有効桁数を超えた部分は四捨五入される。
eA.BeC:
0.XXE+XXという形式で出力する。全
A桁(
'.',
'E',
'+'を含む), 小数部分
B桁, 指数部分
C桁。
eCは指定しなくてもよい(
eA.B)。このとき指数部分は100未満のとき2桁、100以上のとき3桁となる。
esA.BeC:
X.XXという形式で出力する。上の書式とほとんど同じだが、整数部がゼロではなく1桁の数字となる。
繰り返し
フォーマットのうち繰り返し使う部分を括弧で括い、その前に数字を置いて繰り返しの回数を指定する。
文字列変数による書式指定
書式指定文字列に文字変数を使うこともできる。
下の例では
wfmtが書式指定文字列となっている。整数の桁数など、変数の値に応じて書式指定文字列を変更したいときは内部書き込みで書式指定文字列を自動生成することができる。