フォーマット文字列のパラメータ

文字列のフォーマット・ルーチンに渡されるフォーマット文字列には、リテラル文字列とフォーマット指定子の2種類のオブジェクトが含まれます。リテラル文字列は、結果の文字列にすべてそのままコピーされます。フォーマット指定子は、指定されたプロパティからプロパティ値を取得し、フォーマットをそれに適用します。フォーマット文字列に含めることができる指定子は1つのみです。

フォーマット指定子には、次のフォームを使用します。

"%"["-"][width]["."prec]type

表11-1 フォーマット文字列の文字

文字 説明

%

フォーマット指定子の開始を表します。

["—"]

左揃えのインジケータ(オプション)

値の後に空白を追加して、結果を左揃えします。デフォルトでは、値の前に空白を追加して結果を右揃えします。

[width]

幅の指定子(オプション)

変換の最小フィールド幅を設定します。結果の文字列が最小フィールド幅より短い場合は、空白を埋め込んでフィールド幅が広げられます。

["." prec]

精度指定子(オプション)

type

変換タイプ文字

変換文字は、大文字または小文字で指定できます。浮動小数点フォーマットの場合、小数点と桁区切りに使用される実際の文字は、DecimalSeparatorとThousandSeparatorのグローバル変数、またはそれに相当するTFormatSettingsから取得されます。typeの有効な値は、次の表のとおりです。

表11-2 フォーマット文字列のタイプ値

タイプ値 説明

d

小数

プロパティ値は整数である必要があります。値は10進法の文字列に変換されます。フォーマット文字列に精度指定子が含まれている場合は、指定された桁数以上の数字が結果の文字列に含まれる必要があります。値の数字がそれより少ない場合は、結果の文字列の左側にゼロで追加されます。

u

符号なし10進数

dと類似しますが符号が出力されません。

e

指数

プロパティ値は浮動小数点値である必要があります。値は「-d.ddd...E+ddd」という形式の文字列に変換されます。負の数の場合は、結果の文字列がマイナス符号で始まります。小数点の前に常に1桁があります。結果の文字列における合計の桁数(小数点の前の1桁も含む)は、フォーマット文字列の精度指定子で指定します。精度指定子がない場合は、デフォルトの精度15が使用されます。結果の文字列における指数文字「E」の後には、必ずプラスまたはマイナス符号と3桁以上が続きます。

f

固定

プロパティ値は浮動小数点値である必要があります。値は「-ddd.ddd...」という文字列に変換されます。負の数の場合は、結果の文字列がマイナス符号で始まります。小数点以下の桁数は、フォーマット文字列の精度指定子で指定します。精度指定子がない場合は、小数点以下はデフォルトで2桁となります。

g

全般

プロパティ値は浮動小数点値である必要があります。値は、固定または指数フォーマットを使用してできるかぎり短い小数文字列に変換されます。結果の文字列における有効桁数は、フォーマット文字列の精度指定子で指定します。精度指定子がない場合は、デフォルトの精度15が使用されます。後続のゼロは結果文字列から除去され、小数点は必要な場合にのみ表示されます。値の小数点の左にある桁数が、指定した精度以下の場合と、値が0.00001以上の場合、結果の文字列には固定小数点フォーマットが使用されます。それ以外の場合、結果の文字列には指数フォーマットが使用されます。

n

数値

プロパティ値は浮動小数点値である必要があります。値は「-d,ddd,ddd.ddd...」という文字列に変換されます。結果の文字列に桁区切りが含まれる点を除き、nフォーマットはfフォーマットに相当します。

m

通貨

プロパティ値は浮動小数点値である必要があります。値は通貨額を表す文字列に変換されます。変換はCurrencyString、CurrencyFormat、NegCurrFormat、ThousandSeparator、DecimalSeparator、CurrencyDecimalsのグローバル変数、またはそれに相当するTFormatSettingsデータ構造で制御されます。フォーマット文字列に精度指定子が含まれている場合は、CurrencyDecimalsグローバル変数またはそれに相当するTFormatSettingsによって指定される値より優先されます。

s

文字列

プロパティ値は文字、文字列、またはPChar値である必要があります。文字列または文字は、フォーマット指定子のかわりに挿入されます。フォーマット文字列に精度指定子が存在する場合は、結果の文字列の最大長が指定されます。プロパティ値の文字列がこの最大長を超える場合、文字列は切り捨てられます。

x

16進数

プロパティ値は整数値である必要があります。値は16進法の文字列に変換されます。フォーマット文字列に精度指定子が含まれている場合は、指定された桁数以上の数字が結果の文字列に含まれる必要があります。値の数字がそれより少ない場合は、結果の文字列の左側にゼロで追加されます。