System.SysUtils.FormatFloat

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function FormatFloat(const Format: string; Value: Extended): string;
function FormatFloat(const Format: string; Value: Extended; const AFormatSettings: TFormatSettings): string;

C++

extern DELPHI_PACKAGE System::UnicodeString __fastcall FormatFloat(const System::UnicodeString Format, System::Extended Value)/* overload */;

プロパティ

種類 可視性 ソース ユニット
function public
System.SysUtils.pas
System.SysUtils.hpp
System.SysUtils System.SysUtils


説明

浮動小数点値を整形します。

FormatFloat は、Format で指定された書式文字列を使用して、Value で指定された浮動小数点値の形式を整えます。 書式文字列では、次の書式指定子がサポートされます。


指定子 意味
0 数字を表すプレースホルダ。 整形される値で、書式文字列内の "0" が出現する位置に数字がある場合、その数字が出力文字列にコピーされます。 それ以外の場合は、出力文字列のその位置には '0' が格納されます。
# 数字を表すプレースホルダ。 書式設定対象の値で、書式文字列内の "#" が出現する位置に数字がある場合、その数字が出力文字列にコピーされます。 それ以外の場合は、出力文字列のその位置に何も格納されません。
.(ピリオド) 小数点。 書式文字列内の最初の "." 文字によって、書式指定対象の値の小数点位置が決定します。それ以降の "." 文字は無視されます。 出力文字列での小数点の区切りとして使われる実際の文字は、DecimalSeparator グローバル変数、または、それに同等の TFormatSettings によって決まります。
,(カンマ) 桁区切り記号。 書式文字列に 1 つ以上 ',' 文字が含まれている場合、出力には小数点の左側の 3 桁ごとの各グループの間に桁区切り記号が挿入されます。 書式文字列内の ',' 文字の位置と数は、桁区切り記号の使用を指定するということ以外は、出力に影響しません。 出力文字列での桁区切りとして使われる実際の文字は、ThousandSeparator グローバル変数、または、それと同等の TFormatSettings によって決まります。
E+ 科学表記。 書式文字列内に、'E+'、'E-'、'e+'、または 'e-' のうちいずれかの文字列がある場合は、数値は 10 のべき乗を使って表されます。 最大 4 個の '0' 文字のグループを 'E+'、'E-'、'e+'、または 'e-' のすぐ後ろに続けて、指数内の最小桁数を決めることができます。 'E+' と 'e+' の形式では、正の指数にはプラス記号が出力され、負の指数にはマイナス記号が出力されます。 'E-' と 'e-' の形式では、負の指数の場合に限り記号文字が出力されます。
'xx' または "xx" 一重引用符または二重引用符で囲まれた文字は、そのまま出力され、形式指定の影響を受けません。
;(セミコロン) 書式文字列内で、正の数、負の数、0 のためのセクションを区切ります。


書式文字列内の小数点より前にある左端の '0' と、書式文字列内の小数点より後の右端の '0' の位置によって、出力文字列に常に表示される桁数の範囲が決まります。

形式を適用する数値は常に、小数点より右側にある、数字を表すプレースホルダ('0' または '#')の数分の、少数位に丸められます。 書式文字列に小数点が含まれていない場合、書式指定対象の値は、それに最も近い整数に丸められます。

書式を適用する数値の小数点記号より左側の桁数が、書式文字列内の "." 文字の左側にある数字を表すプレースホルダの数より多い場合、最初の数字を表すプレースホルダの前に桁を追加して出力されます。

正の数、負の数、0 に対して異なる書式を指定するには、書式文字列を、セミコロンで区切られた 1 ~ 3 個のセクションで構成します。次のようになります:

  • セクションが 1 つの場合: 書式文字列はすべての値に適用されます。
  • セクションが 2 つの場合: 第 1 セクションを正の数とゼロに適用し、第 2 セクションを負の数に適用します。
  • セクションが 3 つの場合: 第 1 セクションは正の数に、第 2 セクションは負の数に、第 3 セクションは 0 に適用されます。

負の数用のセクション、または 0 用のセクションが空の場合(そのセクションを区切るセミコロンの間に何もない場合)、代わりに正の数用のセクションが適用されます。

正の数用のセクションが空の場合、または書式文字列全体が空の場合、値は、ffGeneral 形式で FloatToStrF を呼び出すのに相当する、有効桁数が 15 桁の一般的な浮動小数点形式にされます。 一般的な浮動小数点形式は、小数点より左の桁数が 18 桁を超えていて、書式文字列に科学表記が指定されていない場合にも使用されます。

FormatFloat の第 1 の形式は、グローバル変数に含まれているローカライズ情報を使用するため、スレッド セーフではありません。 FormatFloat の第 2 の形式は、AFormatSettings パラメータに含まれているローカライズ情報を参照し、スレッド セーフです。 FormatFloat のスレッド セーフ形式を呼び出す前に、AFormatSettings にローカライズ情報を入れる必要があります。 AFormatSettings にデフォルトのローカル値セットを入れるには、TFormatSettings.Create を呼び出します。

関連項目

コード サンプル