NumberFormatter クラスは、特定のロケールの表記規則に従って、数値(int、uint、または Number タイプ)の形式を設定します。
次の例は、ユーザーのオペレーティングシステムで提供されるデフォルトの形式プロパティを使用して数値の形式を設定するための、最も簡単な方法を示しています。
var nf:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT);
trace(nf.formatNumber(-123456.789))
この結果は、ユーザーのロケール設定およびユーザー環境設定に応じて異なります。例えば、ユーザーのロケールが fr-FR の場合、設定される値は次のようになります。
-123.456,789
ユーザーの設定に関わらず、特定のロケール用に数値の形式を設定するだけの場合は、ロケール名を固有に設定します。次に、例を示します。
var nf:NumberFormatter = new NumberFormatter("de-CH");
trace(nf.formatNumber(-123456.789));
この結果は次のようになります。
-123'456.789
formatNumber() メソッドは、Number をパラメーターとして受け取ります。NumberFormatter クラスには、int を入力として受け取る formatint() メソッドと、unit を入力として受け取る formatUnit() メソッドがあります。
この例に示すように、NumberFormatter クラスのプロパティを設定することにより、形式の設定ロジックを明示的に制御できます。
var nf:NumberFormatter = new NumberFormatter("de-CH");
nf.negativeNumberFormat = 0;
nf.fractionalDigits = 5;
nf.trailingZeros = true;
nf.decimalSeparator = ",";
nf.useGrouping = false;
trace(nf.formatNumber(-123456.789)); //(123456.78900)
この例では、最初に NumberFormatter オブジェクトを作成し、次のことを行います。
注意:
これらのプロパティの一部を変更すると、結果の数値形式は、指定されたロケールの形式に対応しなくなります。これらのプロパティは、ロケールへの対応が重視されない場合にのみ使用します。例えば、末尾に挿入するゼロの数など、数値形式の 1 つの側面のみを詳細に制御する必要がある場合や、ユーザーが Windows コントロールパネルから変更を直接要求している場合にのみ使用します。