(クラス)
public final NumberFormatter
{inherits
Formatter}
数字のフォーマット機能を提供するインスタンスを作成するクラス。
説明
このクラスは、ロケールに応じて数字をフォーマットする機能を提供し、以下を含め多数のフォーマット詳細を完全に制御できます。
- 正/負の符号に加え、小数点記号と桁区切り記号に使われる記号。
- 使用する基数。
- 表示される有効桁数の最小数。
頻繁に使われるオプションの多くは、
format を呼び出してより簡単に利用できますが、他の代替オプションは
NumberFormatter を直接呼び出さない限り利用できません。
4 種類の
NumberFormatter を作成するコンストラクタが提供されています。
コンストラクタ public | {NumberFormatter.create-currency-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-integer-digits:int = 1,min-fraction-digits:int = -1,use-grouping?:bool = true } |
コンストラクタ public | {NumberFormatter.create-general-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-precision:int = 6,use-grouping?:bool = false,trim-fraction?:bool = true,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,exponential-symbol:String = "e" } |
コンストラクタ public | {NumberFormatter.create-scientific-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-fraction-digits:int = 6,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,exponential-symbol:String = "e" } |
コンストラクタ public | {NumberFormatter.default locale:Locale = {get-syntax-locale},radix:int = 10,min-field-width:int = 0,min-integer-digits:int = 1,min-fraction-digits:int = 0,use-grouping?:bool = false,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,signed-formatting?:bool = true,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,capitalize-digits?:bool = false } |
フィールド public NumberFormatter.always-use-radix-separator?:
bool
フィールド public NumberFormatter.capitalize-digits?:
bool
フィールド public-get private-set NumberFormatter.currency-symbol:
String ="$"
フィールド public NumberFormatter.exponential-symbol:
String
フィールド public NumberFormatter.grouping-separator:
String =","
grouping-size: | 最後の桁区切り記号と小数点記号の間の桁数を指定する 桁区切り単位数 (例 : 米国英語ロケール "en-US" では 3) を制御します。 |
アクセサ public NumberFormatter.grouping-size:
int セッター public NumberFormatter.grouping-size:
int
フィールド public NumberFormatter.infinity-symbol:
String ="
"
フィールド public-get private-set NumberFormatter.international-currency-symbol:
String ="USD"
フィールド public NumberFormatter.min-field-width:
int
アクセサ public NumberFormatter.min-fraction-digits:
int セッター public NumberFormatter.min-fraction-digits:
int
アクセサ public NumberFormatter.min-integer-digits:
int セッター public NumberFormatter.min-integer-digits:
int
アクセサ public NumberFormatter.min-precision:
int セッター public NumberFormatter.min-precision:
int
フィールド public NumberFormatter.nan-symbol:
String ="
"
フィールド public NumberFormatter.negative-prefix:
String ="-"
フィールド public-get private-set NumberFormatter.negative-sign:
String ="-"
フィールド public NumberFormatter.negative-suffix:
String =""
フィールド public NumberFormatter.positive-prefix:
String =""
フィールド public-get private-set NumberFormatter.positive-sign:
String ="+"
フィールド public NumberFormatter.positive-suffix:
String =""
radix: | 表示される数字の基数 (底) を決定します。 |
フィールド public-get private-set NumberFormatter.radix:
int =10
フィールド public NumberFormatter.radix-separator:
String ="."
アクセサ public NumberFormatter.secondary-grouping-size:
int セッター public NumberFormatter.secondary-grouping-size:
int
フィールド public NumberFormatter.signed-formatting?:
bool
フィールド public NumberFormatter.trim-fraction?:
bool
フィールド public NumberFormatter.use-grouping?:
bool
public | {NumberFormatter.format}:String |
(コンストラクタ)
public | {NumberFormatter.create-currency-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-integer-digits:int = 1,min-fraction-digits:int = -1,use-grouping?:bool = true } |
指定された locale で通貨の値をフォーマットするのに適した NumberFormatter オブジェクトを作成します。
説明
以下のキーワード引数 :
- min-field-width
- min-integer-digits
- min-fraction-digits
- use-grouping?
では、これらと同じ名前のプロパティの初期値を指定しますが、
min-fraction-digits が負の値の場合 (既定値)、
min-fraction-digits プロパティが実際に負の数に設定されることはありません。代わりに、
min-fraction-digits プロパティが指定ロケールの通貨量における端数を表す既定数に設定されます。
上記のアクセッサで制御されない他のパラメータ (小数点記号や桁区切り記号に使われる文字など) は、
locale キーワード引数として指定される
Locale から直接得られます。
format メソッドを使用した出力結果では、ロケールに合わせた通貨記号が使われ、指定ロケールの規則で指定される位置 (数字の前または後ろ) に置かれます。
(コンストラクタ)
public | {NumberFormatter.create-general-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-precision:int = 6,use-grouping?:bool = false,trim-fraction?:bool = true,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,exponential-symbol:String = "e" } |
指定された locale の規則に従って g スタイルのフォーマットを行うのに適した NumberFormatter オブジェクトを作成します。
説明
以下のキーワード引数 :
- min-field-width
- min-precision
- use-grouping?
- trim-fraction?
- always-use-radix-separator?
- justification
- positive-sign-style
- exponential-symbol
では、これらと同じ名前のプロパティの初期値を指定します。上記のアクセッサで制御されない他のパラメータ (小数点記号や桁区切り記号に使われる文字など) は、
locale キーワード引数として指定される
Locale から直接得られます。
format メソッドを使用した出力結果では、与えられた数字は、
min-precision 指定の有効桁数で、通常の (
f
) 数値スタイルか科学表記 (
e
) スタイルでフォーマットされます。使用されるスタイルは、変換された値によって決まります。科学表記スタイルは、このスタイルによる変換の結果が -4 未満か
min-precision 以上の場合に限り使用されます。
(コンストラクタ)
public | {NumberFormatter.create-scientific-formatter locale:Locale = {get-syntax-locale},min-field-width:int = 0,min-fraction-digits:int = 6,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,exponential-symbol:String = "e" } |
指定された locale の規則に従って e スタイルのフォーマットを行うのに適した NumberFormatter オブジェクトを作成します。
説明
以下のキーワード引数 :
- min-field-width
- min-fraction-digits
- always-use-radix-separator?
- justification
- positive-sign-style
- exponential-symbol
では、これらと同じ名前のプロパティの初期値を指定します。上記のアクセッサで制御されない他のパラメータ (小数点記号や桁区切り記号に使われる文字など) は、
locale キーワード引数として指定される
Locale から直接得られます。
format メソッドを使用した出力結果では、与えられた数字が上記のパラメータ制御に基づいてフォーマットされます。
(コンストラクタ)
public | {NumberFormatter.default locale:Locale = {get-syntax-locale},radix:int = 10,min-field-width:int = 0,min-integer-digits:int = 1,min-fraction-digits:int = 0,use-grouping?:bool = false,always-use-radix-separator?:bool = false,justification:NumberJustification = NumberJustification.right-justify,signed-formatting?:bool = true,positive-sign-style:PositiveSignStyle = PositiveSignStyle.none,capitalize-digits?:bool = false } |
指定された locale の規則に従って f スタイルのフォーマットを行うのに適した NumberFormatter オブジェクトを作成します。
説明
以下のキーワード引数 :
- radix
- min-field-width
- min-integer-digits
- min-fraction-digits
- use-grouping?
- always-use-radix-separator?
- justification
- signed-formatting?
- positive-sign-style
- capitalize-digits?
では、これらと同じ名前のプロパティの初期値を指定します。上記のアクセッサで制御されない他のパラメータ (小数点記号や桁区切り記号に使われる文字など) は、
locale キーワード引数として指定される
Locale から直接得られます。
format メソッドを使用した出力結果では、与えられた数字が上記のパラメータ制御に基づいてフォーマットされます。
(フィールド)
public NumberFormatter.always-use-radix-separator?:
bool true の場合、端数の桁数がゼロでも小数点記号を強制的に表示します。
(フィールド)
public NumberFormatter.capitalize-digits?:
bool 9 より大きい数字を大文字で表示するかどうかを制御します。
説明
self.radix > 10 の場合、9 より大きい数字はアルファベットの文字で表示されます (
10 は
'a'、
11 は
'b' など)。
capitalize-digits? が
true の場合、これらの非数字文字は大文字で表示され、その他の場合は小文字で表示されます。
(フィールド)
public-get private-set NumberFormatter.currency-symbol:
String ="$"
通貨記号
(例 : 米国英語ロケール "en-US" の "$")。
注意事項
(フィールド)
public NumberFormatter.exponential-symbol:
String 科学的記数法で数字をフォーマットするときに使われる指数記号の値。
注意事項
この記号は通常、標準の科学表記フォーマットの "e" になります。
(フィールド)
public NumberFormatter.grouping-separator:
String =","
数値の桁区切り記号
(例 : 米国英語ロケール "en-US" では ",") を制御します。
(アクセサ)
アクセサ public NumberFormatter.grouping-size:
int セッター public NumberFormatter.grouping-size:
int 最後の桁区切り記号と小数点記号の間の桁数を指定する 桁区切り単位数
(例 : 米国英語ロケール "en-US" では 3) を制御します。
説明
grouping-size を負の値に設定するとエラーになります。このプロパティを
0 に設定すると、
self.use-grouping? が
true に設定されていても桁区切り記号の表示は無効になります。
(フィールド)
public NumberFormatter.infinity-symbol:
String ="
"
(フィールド)
public-get private-set NumberFormatter.international-currency-symbol:
String ="USD"
ISO 4217 国際通貨記号
(例 : 米国英語ロケール "en-US" では "USD")。
注意事項
(フィールド)
self でフォーマットされる数字の配置方法を指定します。
説明
注意事項
self.min-field-width の値が、フォーマッタにより実際に生成される文字数以下の場合、
justification プロパティの値を変更してもフォーマット結果は変わりません (つまり、パディング文字は生成されません)。
(フィールド)
public NumberFormatter.min-field-width:
int 数字のフォーマットから生成される char 列の最小数を制御します。
説明
フォーマット演算の結果がこの
char の数より小さい場合、
justification フィールド値の指定に従い追加の文字が当てられます。
min-field-width が 0 の場合は、パディング文字は生成されません。
フォーマット演算の結果がこの
char の数よりも大きい場合、通常は
min-field-width より大きくなってもこの生成された文字の完全な文字列が結果になります。
min-field-width を 0 より小さい値に設定するとエラーになります。
プログラミング注意事項
Unicode の書記素 (grapheme) クラスタには、複数の文字で構成されるものがあります。たとえば、結合アクセント文字が文字列に含まれる場合にこれが起こります。したがって、出力の書記素クラスタが
char の数より少なくなる可能性があります。一般に、
min-field-width プロパティは従来のプログラミング スタイルをサポートする単純な機能として設計されています。このプログラミング スタイルでは、設定文字数で値を表現してその結果を固定幅フォントで表示し、比較的単純なフォーマット結果を統一幅にパディングします。現行では固定幅フォントはあまり使用されず、国際化されたアプリケーションでは、複数文字 (multi-
char) 構成の書記素クラスタを使用するコンテンツを扱う必要がある場合もあります。このような場合は、いずれにおいても
min-field-width プロパティは役に立たず、使用すべきではありません。代わりに、
VBox や
Table などの GUI Toolkit 機能でサポートされている配置機能の使用を推奨します。
(アクセサ)
アクセサ public NumberFormatter.min-fraction-digits:
int セッター public NumberFormatter.min-fraction-digits:
int 常に生成される 端数桁数
(小数点記号の右側の数字) の最小数を制御します。 通常、これは生成される端数の最大桁数でもあります。
注意事項
min-fraction-digits を 0 より小さい値に設定するとエラーになります。
(アクセサ)
アクセサ public NumberFormatter.min-integer-digits:
int セッター public NumberFormatter.min-integer-digits:
int 生成される 整数
(小数点記号の左側の数字) の最小桁数を制御します。
注意事項
min-integer-digits を 0 より小さい値に設定するとエラーになります。
(アクセサ)
アクセサ public NumberFormatter.min-precision:
int セッター public NumberFormatter.min-precision:
int 表示される有効桁数の最小数を制御します。
注意事項
(フィールド)
public NumberFormatter.nan-symbol:
String ="
"
(フィールド)
public NumberFormatter.negative-prefix:
String ="-"
フォーマッタが負の数の前に置くプレフィックスを制御します。
(フィールド)
public-get private-set NumberFormatter.negative-sign:
String ="-"
数値の負の符号 (例 : 米国英語ロケール "en-US" の "-")。
(フィールド)
public NumberFormatter.negative-suffix:
String =""
フォーマッタが負の数の後ろに置くサフィックスを制御します。
(フィールド)
public NumberFormatter.positive-prefix:
String =""
フォーマッタが非負の数の前に置くプレフィックスを制御します。
注意事項
(フィールド)
public-get private-set NumberFormatter.positive-sign:
String ="+"
数値の正の符号 (例 : 米国英語ロケール "en-US" の "+")。
(アクセサ)
非負の数の符号がどのように表示されるかを指定します。
説明
通貨フォーマッタでは、
positive-sign-style を
PositiveSignStyle.none 以外の値に設定するとエラーになります。 通貨フォーマッタのコンストラクタは、ロケールをクエリして非負の数値の表示方法を決定します。
(フィールド)
public NumberFormatter.positive-suffix:
String =""
フォーマッタが非負の数の後ろに置くサフィックスを制御します。
注意事項
(フィールド)
public-get private-set NumberFormatter.radix:
int =10
表示される数字の基数 (底) を決定します。
説明
radix は、2 から 36 までの値 : 2 <= radix <= 36 しか取れません。
f-スタイルのフォーマットを実行する場合のみ、基数が 10 以外の値でも有効です。
(フィールド)
public NumberFormatter.radix-separator:
String ="."
小数点記号
(例 : 米国英語ロケール "en-US" では ".") を制御します。
(アクセサ)
アクセサ public NumberFormatter.secondary-grouping-size:
int セッター public NumberFormatter.secondary-grouping-size:
int 桁区切り記号間の桁数を指定する 2 次的な桁区切り単位数
を制御します。(通常これは grouping-size と同じです。)
説明
このプロパティを負の値に設定するとエラーになります。 また、このプロパティを直接
0 に設定するとエラーになりますが、
grouping-size プロパティを
0 に設定した結果としてこのプロパティが
0 に設定されるのはかまいません。
(フィールド)
public NumberFormatter.signed-formatting?:
bool フォーマッタが数字を符号付きとして扱う (true の場合) か、符号なしとして扱う (false の場合) かを決定します。
説明
signed-formatting? が
true の場合、フォーマッタは数字を符号つき数量として扱います。つまり、
int または
int64 の最上位ビットは符号ビットとして解釈され、したがって
0xffffffff は
-1 として表示されます。
signed-formatting? が
false の場合、フォーマッタは数字を符号なし数量として扱います。つまり、
int または
int64 の最上位ビットはその次のビットの値の 2 倍であることになり、したがって
0xffffffff は
4294967295 として表示されます。
signed-formatting? は、表示前に
format メソッドが短い符号つき整数型 (
int8 など) を長い整数型 (
int など) に拡張する方法に影響を与えます。このプロパティが
true の場合、数量は符号拡張され、その他の場合、ゼロ拡張されます。
(フィールド)
public NumberFormatter.trim-fraction?:
bool 小数点記号に続く末尾ゼロが切り捨てられるようにします。
説明
trim-fraction? は、NumberFormatter.create-general-formatter の呼び出しより作成されたフォーマッタのみに影響を及ぼします。
(フィールド)
public NumberFormatter.use-grouping?:
bool 桁区切り記号 (例 : 1,000,000 のカンマ) を使用できるようにします。
説明
(メソッド)
public | {NumberFormatter.format}:String |
数値を文字のシーケンスにフォーマットします。
out: この引数を
null 以外の値に設定した場合、フォーマットされた数字は
out に書き込まれ、返される
String は
"" になります。その他の場合、フォーマットされた数字を表現する文字のシーケンスが
String として返されます。
戻り値
out を
null 以外の値に指定した場合、返される
String は
"" になります。その他の場合、文字のシーケンスが
String として返されます。