フォーマットした文字列を返します(Cのsprintf()関数と同様です)。
StringFormat ( "format control", var1 [, ... var32] )
パラメータ
format control | 使用するフォーマットとフラグ(注意を参照) |
var1...var32 | "format control"に従って出力される32個以下の変数 |
返し値
"format control"パラメータで定義された"変数フォーマット"に基づいてフォーマットされた文字列が返されます。
注意
バッファオーバーフローを防ぐため、各"変数"は65535文字以下でなければなりません。型 | 値の型 | 出力形式 |
d, i | Integer | 符号付10進数整数 |
o | Integer | 符号なし8進数整数 |
u | Integer | 符号なし10進数整数 |
x | Integer | "abcdef"を使用した符号なし16進数整数 |
X | Integer | "ABCDEF"を使用した符号なし16進数整数 |
e | Float | [ - ]d.dddd e [sign]ddd形式の符号付きの値。 d は1桁の10進数。dddd は1桁以上の10進数。ddd は正確に3桁の10進数。sign は+もしくは-。 |
E | Float | 指数を表す文字がeではなくEである以外はeと同じ。 |
f | Float | [ - ]dddd.dddd形式の符号付の値。ddddは1桁以上。 小数点の前の桁数は数値の大きさに依存し、小数点の後の桁数は要求された精度に依存します。 |
g | Float | fまたはe形式の符号付の値。いずれの場合でもよりコンパクトな値と精度になる。指数の値が-4以下または指定された精度以上の場合のみe形式が使用される。末尾のゼロは切り捨てられ小数点以下に数値がある場合のみ小数点が表示される。 |
G | Float | (適所)指数を表す文字がeではなくEである以外はgと同じ。 |
s | String | 文字列 |
フラグ | 意味 | デフォルト |
- | 与えられた幅で結果を右揃えにする。 | 右揃え. |
+ | 出力値が符号付型の場合、符号(+、-) を頭につける | 符号は負値(-)の場合のみ表示される。 |
0 | widthの先頭に0をつけると指定幅に達するまでゼロが付加されます。0と-が指定された場合、0は無視されます。整数形式(i、u、x、X、o、d)が指定された場合、0は無視されます。 | ゼロ埋めなし |
空白 | 出力値が符号付正数の場合、先頭に空白が付加されます。空白と+フラグが指定された場合、空白は無視されます。 | 空白なし |
# | o、x、X形式に使用した場合、#フラグによって非ゼロの出力値の先頭にそれぞれ0、 0x、0Xが付加されます。 | なし |
# | e、E、f形式に使用した場合、#フラグによって全ての出力値に小数点が含まれるようになります。 | 小数点以下の桁が存在する場合のみ小数点が表示されます。 |
# |
g、G形式に使用した場合、#フラグによって全ての出力値に小数点が含まれるようになり、末尾のゼロの切捨てがおこなわれなくなります。 c、d、i、u、sに使用した場合は無視されます。 |
小数点以下の桁が存在する場合のみ小数点が表示されます。末尾のゼロは切り捨てられます。 |
型 | 意味 | デフォルト |
d, i, u, o, x, X | 精度は表示される最小桁数を指定します。 桁数指定が精度より少ない場合、出力値は左側からゼロで穴埋めされます。 桁数が精度より多い場合は値の切捨てはおこなわれません。 | デフォルト精度は1です。 |
e, E | 精度は表示される小数点以下の桁数を指定します。表示される最後の桁は丸め込まれます。 | デフォルト精度は6です。精度0、ピリオド(.)以下に数値が無い場合は小数点が表示されません。 |
f | 精度は表示される小数点以下の桁数を指定します。小数点がある場合、少なくとも1桁が小数点の前にあります。値は適切な桁数に丸め込まれます。 | デフォルト精度は6です。精度0、ピリオド(.)以下に数値が無い場合は小数点が表示されません。 |
g, G | 精度は表示される有効桁数の最大値を指定します。 | 有効桁6桁で表示され、末尾のゼロは切り捨てられます。 |
s | 精度は表示される最大文字数を指定します。精度を超える文字は表示されません。 | NULL文字に到達するまでの文字が表示されます。 |
関連
なし。
例
$n = 43951789;
$u = -43951789;
; %%に注意。'%'として表示される
printf("%%d = '%d'\n", $n); '43951789' 標準の整数表記
printf("%%e = '%e'\n", $n); '4.395179e+007' 科学表記
printf("%%u = '%u'\n", $n); '43951789' 正の整数の符号なし整数表記
printf("%%u <0 = '%u'\n", $u); '4251015507' 負の整数の符号なし整数表記
printf("%%f = '%f'\n", $n); '43951789.000000' 浮動小数点表記
printf("%%.2f = '%.2f'\n", $n); '43951789.00' 小数点以下2桁の浮動小数点表記
printf("%%o = '%o'\n", $n); '247523255' 8進数表記
printf("%%s = '%s'\n", $n); '43951789' 文字列表記
printf("%%x = '%x'\n", $n); '29ea6ad' 16進数表記 (小文字)
printf("%%X = '%X'\n", $n); '29EA6AD' 16進数表記 (大文字)
printf("%%+d = '%+d'\n", $n); '+43951789' 符号付きの正の整数
printf("%%+d <0= '%+d'\n", $u); '-43951789' 符号付きの負の整数
$s = 'monkey';
$t = 'many monkeys';
printf("%%s = [%s]\n", $s); [monkey] 標準の文字列出力
printf("%%10s = [%10s]\n", $s); [ monkey] スペース付き右寄せ
printf("%%-10s = [%-10s]\n", $s); [monkey ] スペース付き左寄せ
printf("%%010s = [%010s]\n", $s); [0000monkey] 文字列もゼロ埋めできる
printf("%%10.10s = [%10.10s]\n", $t); [many monke] 左寄せ。ただし10文字まで
printf("%04d-%02d-%02d\n", 2008, 4, 1);
Func Printf($format, $var1, $var2=-1, $var3=-1)
If $var2=-1 Then
ConsoleWrite(StringFormat($format, $var1))
Else
ConsoleWrite(StringFormat($format, $var1, $var2, $var3))
EndIf
EndFunc