(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
Программы хранят и оперируют числами используя, не зависящее от локали, бинарное представление. Когда же они выводятся на экран или печатаются, они конвертируются в строки в соответствии с требованиями локали. К примеру, число 12345.67 выведется как "12,345.67" в локали US, как "12 345,67" во французской локали и как "12.345,67" в немецкой.
Вызывая методы этого класса, вы можете форматировать числа, денежные единицы и процентнын величины в представлении нужной локали. Класс NumberFormatter чуствителен к локали, следовательно вам необходимо будет создавать новый экземпляр класса для каждой локали. Методы NumberFormatter форматируют примитивные типы чисел, такие как "double", и выводят их в специфичном для локали представлении.
Для денежных единиц вы можете использовать тип форматирования денежных единиц, который возвращает строку с отформатированным числом и символом денежной единицы. Естественно NumberFormatter не знает о курсах обмена, так что для всех денежных единиц будет возвращено одно и то же число. К примеру, для числа 9988776.65 рещультат будет такой:
Для форматирования процентных величин используется свой тип форматирования. При таком форматировании число 0.75 будет выведено как 75%.
Для более сложного форматирования, например для разбора числа, используется форматирование основанное на наборе правил.
Данные стили используются функцией numfmt_create() для определения типа форматирования.
NumberFormatter::PATTERN_DECIMAL
(integer)
NumberFormatter::DECIMAL
(integer)
NumberFormatter::CURRENCY
(integer)
NumberFormatter::PERCENT
(integer)
NumberFormatter::SCIENTIFIC
(integer)
NumberFormatter::SPELLOUT
(integer)
NumberFormatter::ORDINAL
(integer)
NumberFormatter::DURATION
(integer)
NumberFormatter::PATTERN_RULEBASED
(integer)
NumberFormatter::DEFAULT_STYLE
(integer)
NumberFormatter::IGNORE
(integer)
Данные константы определяют как будут разобраны или отформатированы числа. Их необходимо передавать функциям numfmt_format() и numfmt_parse().
NumberFormatter::TYPE_DEFAULT
(integer)
NumberFormatter::TYPE_INT32
(integer)
NumberFormatter::TYPE_INT64
(integer)
NumberFormatter::TYPE_DOUBLE
(integer)
NumberFormatter::TYPE_CURRENCY
(integer)
Аттрибут формата чисел для numfmt_get_attribute() и numfmt_set_attribute().
NumberFormatter::PARSE_INT_ONLY
(integer)
NumberFormatter::GROUPING_USED
(integer)
NumberFormatter::DECIMAL_ALWAYS_SHOWN
(integer)
NumberFormatter::MAX_INTEGER_DIGITS
(integer)
NumberFormatter::MIN_INTEGER_DIGITS
(integer)
NumberFormatter::INTEGER_DIGITS
(integer)
NumberFormatter::MAX_FRACTION_DIGITS
(integer)
NumberFormatter::MIN_FRACTION_DIGITS
(integer)
NumberFormatter::FRACTION_DIGITS
(integer)
NumberFormatter::MULTIPLIER
(integer)
NumberFormatter::GROUPING_SIZE
(integer)
NumberFormatter::ROUNDING_MODE
(integer)
NumberFormatter::ROUNDING_INCREMENT
(integer)
NumberFormatter::FORMAT_WIDTH
(integer)
NumberFormatter::PADDING_POSITION
(integer)
NumberFormatter::SECONDARY_GROUPING_SIZE
(integer)
NumberFormatter::SIGNIFICANT_DIGITS_USED
(integer)
NumberFormatter::MIN_SIGNIFICANT_DIGITS
(integer)
NumberFormatter::MAX_SIGNIFICANT_DIGITS
(integer)
NumberFormatter::LENIENT_PARSE
(integer)
Аттрибуты текста форматирования чисел, используются в numfmt_get_text_attribute() и numfmt_set_text_attribute().
NumberFormatter::POSITIVE_PREFIX
(integer)
NumberFormatter::POSITIVE_SUFFIX
(integer)
NumberFormatter::NEGATIVE_PREFIX
(integer)
NumberFormatter::NEGATIVE_SUFFIX
(integer)
NumberFormatter::PADDING_CHARACTER
(integer)
NumberFormatter::CURRENCY_CODE
(integer)
NumberFormatter::DEFAULT_RULESET
(integer)
NumberFormatter::PUBLIC_RULESETS
(integer)
Символы форматирования чисел для numfmt_get_symbol() и numfmt_set_symbol().
NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
(integer)
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
(integer)
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
(integer)
NumberFormatter::PERCENT_SYMBOL
(integer)
NumberFormatter::ZERO_DIGIT_SYMBOL
(integer)
NumberFormatter::DIGIT_SYMBOL
(integer)
NumberFormatter::MINUS_SIGN_SYMBOL
(integer)
NumberFormatter::PLUS_SIGN_SYMBOL
(integer)
NumberFormatter::CURRENCY_SYMBOL
(integer)
NumberFormatter::INTL_CURRENCY_SYMBOL
(integer)
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
(integer)
NumberFormatter::EXPONENTIAL_SYMBOL
(integer)
NumberFormatter::PERMILL_SYMBOL
(integer)
NumberFormatter::PAD_ESCAPE_SYMBOL
(integer)
NumberFormatter::INFINITY_SYMBOL
(integer)
NumberFormatter::NAN_SYMBOL
(integer)
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
(integer)
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
(integer)
Режимы округления для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::ROUNDING_MODE
.
NumberFormatter::ROUND_CEILING
(integer)
NumberFormatter::ROUND_DOWN
(integer)
NumberFormatter::ROUND_FLOOR
(integer)
NumberFormatter::ROUND_HALFDOWN
(integer)
NumberFormatter::ROUND_HALFEVEN
(integer)
NumberFormatter::ROUND_HALFUP
(integer)
NumberFormatter::ROUND_UP
(integer)
Значения позиции дополнения для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::PADDING_POSITION
.
NumberFormatter::PAD_AFTER_PREFIX
(integer)
NumberFormatter::PAD_AFTER_SUFFIX
(integer)
NumberFormatter::PAD_BEFORE_PREFIX
(integer)
NumberFormatter::PAD_BEFORE_SUFFIX
(integer)