|
NumberFormatter クラスはじめにプログラムで数値を保存したり操作したりする際には、 ロケールに依存しないバイナリ表現を使用します。 数値を表示するときに、ロケールにあわせた文字列形式に変換します。 たとえば 12345.67 という数値の表記はアメリカでは "12,345.67"、 フランスでは "12 345,67"、そしてドイツでは "12.345,67" となります。 NumberFormatter クラスのメソッドを実行すると、 数値や通貨、パーセンテージなどの値をロケールに応じた形式にフォーマットすることができます。 NumberFormatter はロケールを考慮した処理を行うので、 ロケールごとに別の NumberFormatter を用意する必要があります。 NumberFormatter のメソッドは、浮動小数点数値のような数値を ロケールにあわせた文字列に変換します。 通貨の場合は、通貨用の書式を使用してフォーマッタを作成します。 これは、ロケールにあわせて数値を適切な書式にして通貨記号をつけた文字列を返します。 もちろん、NumberFormatter クラスは為替レートの変換などは考慮しません。 指定した通貨にかかわらず、出力される数値は同じものとなります。 つまり、ロケールによって同じ数値が違う額を表すことになるということです。 9988776.65 という数値を指定したときの結果は次のようになります。
パーセンテージをフォーマットするには、 パーセンテージ用の書式を指定したフォーマッタを作成します。 これを使用すると、たとえば 0.75 のような小数が 75% と表示されるようになります。 spelled-out numbers のような複雑な書式を設定する場合は、 ルールベースの数値フォーマッタを使用します。 クラス概要
NumberFormatter
/* 定数 */
public
const
int
NumberFormatter::PATTERN_DECIMAL;
public
const
int
NumberFormatter::DECIMAL;
public
const
int
NumberFormatter::CURRENCY;
public
const
int
NumberFormatter::PERCENT;
public
const
int
NumberFormatter::SCIENTIFIC;
public
const
int
NumberFormatter::SPELLOUT;
public
const
int
NumberFormatter::ORDINAL;
public
const
int
NumberFormatter::DURATION;
public
const
int
NumberFormatter::PATTERN_RULEBASED;
public
const
int
NumberFormatter::IGNORE;
public
const
int
NumberFormatter::CURRENCY_ACCOUNTING;
public
const
int
NumberFormatter::DEFAULT_STYLE;
public
const
int
NumberFormatter::ROUND_CEILING;
public
const
int
NumberFormatter::ROUND_FLOOR;
public
const
int
NumberFormatter::ROUND_DOWN;
public
const
int
NumberFormatter::ROUND_UP;
public
const
int
NumberFormatter::ROUND_HALFEVEN;
public
const
int
NumberFormatter::ROUND_HALFDOWN;
public
const
int
NumberFormatter::ROUND_HALFUP;
public
const
int
NumberFormatter::PAD_BEFORE_PREFIX;
public
const
int
NumberFormatter::PAD_AFTER_PREFIX;
public
const
int
NumberFormatter::PAD_BEFORE_SUFFIX;
public
const
int
NumberFormatter::PAD_AFTER_SUFFIX;
public
const
int
NumberFormatter::PARSE_INT_ONLY;
public
const
int
NumberFormatter::GROUPING_USED;
public
const
int
NumberFormatter::DECIMAL_ALWAYS_SHOWN;
public
const
int
NumberFormatter::MAX_INTEGER_DIGITS;
public
const
int
NumberFormatter::MIN_INTEGER_DIGITS;
public
const
int
NumberFormatter::INTEGER_DIGITS;
public
const
int
NumberFormatter::MAX_FRACTION_DIGITS;
public
const
int
NumberFormatter::MIN_FRACTION_DIGITS;
public
const
int
NumberFormatter::FRACTION_DIGITS;
public
const
int
NumberFormatter::MULTIPLIER;
public
const
int
NumberFormatter::GROUPING_SIZE;
public
const
int
NumberFormatter::ROUNDING_MODE;
public
const
int
NumberFormatter::ROUNDING_INCREMENT;
public
const
int
NumberFormatter::FORMAT_WIDTH;
public
const
int
NumberFormatter::PADDING_POSITION;
public
const
int
NumberFormatter::SECONDARY_GROUPING_SIZE;
public
const
int
NumberFormatter::SIGNIFICANT_DIGITS_USED;
public
const
int
NumberFormatter::MIN_SIGNIFICANT_DIGITS;
public
const
int
NumberFormatter::MAX_SIGNIFICANT_DIGITS;
public
const
int
NumberFormatter::LENIENT_PARSE;
public
const
int
NumberFormatter::POSITIVE_PREFIX;
public
const
int
NumberFormatter::POSITIVE_SUFFIX;
public
const
int
NumberFormatter::NEGATIVE_PREFIX;
public
const
int
NumberFormatter::NEGATIVE_SUFFIX;
public
const
int
NumberFormatter::PADDING_CHARACTER;
public
const
int
NumberFormatter::CURRENCY_CODE;
public
const
int
NumberFormatter::DEFAULT_RULESET;
public
const
int
NumberFormatter::PUBLIC_RULESETS;
public
const
int
NumberFormatter::DECIMAL_SEPARATOR_SYMBOL;
public
const
int
NumberFormatter::GROUPING_SEPARATOR_SYMBOL;
public
const
int
NumberFormatter::PATTERN_SEPARATOR_SYMBOL;
public
const
int
NumberFormatter::PERCENT_SYMBOL;
public
const
int
NumberFormatter::ZERO_DIGIT_SYMBOL;
public
const
int
NumberFormatter::DIGIT_SYMBOL;
public
const
int
NumberFormatter::MINUS_SIGN_SYMBOL;
public
const
int
NumberFormatter::PLUS_SIGN_SYMBOL;
public
const
int
NumberFormatter::CURRENCY_SYMBOL;
public
const
int
NumberFormatter::INTL_CURRENCY_SYMBOL;
public
const
int
NumberFormatter::MONETARY_SEPARATOR_SYMBOL;
public
const
int
NumberFormatter::EXPONENTIAL_SYMBOL;
public
const
int
NumberFormatter::PERMILL_SYMBOL;
public
const
int
NumberFormatter::PAD_ESCAPE_SYMBOL;
public
const
int
NumberFormatter::INFINITY_SYMBOL;
public
const
int
NumberFormatter::NAN_SYMBOL;
public
const
int
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL;
public
const
int
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL;
public
const
int
NumberFormatter::TYPE_DEFAULT;
public
const
int
NumberFormatter::TYPE_INT32;
public
const
int
NumberFormatter::TYPE_INT64;
public
const
int
NumberFormatter::TYPE_DOUBLE;
public
const
int
NumberFormatter::TYPE_CURRENCY;
/* メソッド */
public __construct(string
$locale , int $style , stringnull $pattern = null )public static NumberFormatternull create(string
$locale , int $style , stringnull $pattern = null )public stringfalse format(intfloat
$num , int $type = NumberFormatter::TYPE_DEFAULT)public stringfalse formatCurrency(float
$amount , string $currency )public intfloatfalse getAttribute(int
$attribute )public int getErrorCode()
public string getErrorMessage()
public stringfalse getLocale(int
$type = ULOC_ACTUAL_LOCALE )public stringfalse getPattern()
public stringfalse getSymbol(int
$symbol )public stringfalse getTextAttribute(int
$attribute )public intfloatfalse parse(string
$string , int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null )public floatfalse parseCurrency(string
$string , string &$currency , int &$offset = null )public bool setAttribute(int
$attribute , intfloat $value )public bool setPattern(string
$pattern )public bool setSymbol(int
$symbol , string $value )public bool setTextAttribute(int
$attribute , string $value )定義済み定数フォーマッタのタイプこれらのスタイルは numfmt_create で使用するもので、フォーマッタの形式を定義します。
数値フォーマットの指定子これらの定数は、数値のパースやフォーマットの方法を定義します。 numfmt_format や numfmt_parse の引数として使用します。
数値フォーマットの属性numfmt_get_attribute および numfmt_set_attribute で使用する数値フォーマット属性です。
数値フォーマットのテキスト属性numfmt_get_text_attribute および numfmt_set_text_attribute で使用する数値フォーマットテキスト属性です。
シンボルフォーマットの指定子numfmt_get_symbol および numfmt_set_symbol で使用する数値フォーマット記号です。
丸めモード
numfmt_get_attribute および
numfmt_set_attribute で、
パディングの指定子
numfmt_get_attribute および
numfmt_set_attribute で、
|