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