(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Programas armazenam e operam números usando uma representação binária que não depende da localidade. Ao apresentar ou imprimir um número, ele é convertido para uma string específica para a localidade. Por exemplo, o número 12345.67 é "12,345.67" nos Estados Unidos, "12 345,67" na França e "12.345,67" na Alemanha e no Brasil.
Ao invocar os métodos fornecidos pela classe NumberFormatter, pode-se formatar números, moedas, e percentagens de acordo com o especificado ou com a localidade padrão. NumberFormatter é sensível à localidade, portanto é necessário criar um novo objeto NumberFormatter para cada localidade. Métodos NumberFormatter formatam números com tipos primitivos, como 'double' e mostram o número como uma string específica para a localidade
Para moedas, pode-se usar o tipo de formato de moeda para criar um formatador que retorne uma string com o número formatado e com o sinal apropriado para a moeda. Obviamente, a classe NumberFormatter não tem ciência de taxas de câmbio, portanto, a saída é a mesma independente da moeda especificada. Isto significa que o mesmo número tem diferentes valores monteários dependendo da moeda da localidade. Se o número for 9988776.65, os resultados serão:
Para formatar percentagens, deve-se criar um formatador específico da localidade com o tipo de formato de percentual. Com este formatados, uma fração decimal como 0.75 é mostrada como 75%.
Para formatações mais complexas, como números por extenso, os formatadores de número baseados em regras são utilizados.
Estes estilos são usados pela função numfmt_create() para definir o tipo do formatador.
NumberFormatter::PATTERN_DECIMAL
NumberFormatter::DECIMAL
NumberFormatter::CURRENCY
NumberFormatter::PERCENT
NumberFormatter::SCIENTIFIC
NumberFormatter::SPELLOUT
NumberFormatter::ORDINAL
NumberFormatter::DURATION
NumberFormatter::PATTERN_RULEBASED
NumberFormatter::CURRENCY_ACCOUNTING
($3.00)
para quantidade negativa de moeda ao invés de -$3.00
. Disponível a partir do PHP 7.4.1 e ICU 53. NumberFormatter::DEFAULT_STYLE
NumberFormatter::IGNORE
Estas constantes definem como os números são analisados ou formatados. Eles devem ser usados como argumentos para as funções numfmt_format() e numfmt_parse().
NumberFormatter::TYPE_DEFAULT
NumberFormatter::TYPE_INT32
NumberFormatter::TYPE_INT64
NumberFormatter::TYPE_DOUBLE
NumberFormatter::TYPE_CURRENCY
Atributo de formato de número usado pelas funções numfmt_get_attribute() e numfmt_set_attribute().
NumberFormatter::PARSE_INT_ONLY
NumberFormatter::GROUPING_USED
NumberFormatter::DECIMAL_ALWAYS_SHOWN
NumberFormatter::MAX_INTEGER_DIGITS
NumberFormatter::MIN_INTEGER_DIGITS
NumberFormatter::INTEGER_DIGITS
NumberFormatter::MAX_FRACTION_DIGITS
NumberFormatter::MIN_FRACTION_DIGITS
NumberFormatter::FRACTION_DIGITS
NumberFormatter::MULTIPLIER
NumberFormatter::GROUPING_SIZE
NumberFormatter::ROUNDING_MODE
NumberFormatter::ROUNDING_INCREMENT
NumberFormatter::FORMAT_WIDTH
NumberFormatter::PADDING_POSITION
NumberFormatter::SECONDARY_GROUPING_SIZE
NumberFormatter::SIGNIFICANT_DIGITS_USED
NumberFormatter::MIN_SIGNIFICANT_DIGITS
NumberFormatter::MAX_SIGNIFICANT_DIGITS
NumberFormatter::LENIENT_PARSE
Atributo de texto de formato numérico usado por numfmt_get_text_attribute() e numfmt_set_text_attribute().
NumberFormatter::POSITIVE_PREFIX
NumberFormatter::POSITIVE_SUFFIX
NumberFormatter::NEGATIVE_PREFIX
NumberFormatter::NEGATIVE_SUFFIX
NumberFormatter::PADDING_CHARACTER
NumberFormatter::CURRENCY_CODE
NumberFormatter::DEFAULT_RULESET
NumberFormatter::PUBLIC_RULESETS
Símbolos de formato de número usados por numfmt_get_symbol() e numfmt_set_symbol().
NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
NumberFormatter::PERCENT_SYMBOL
NumberFormatter::ZERO_DIGIT_SYMBOL
NumberFormatter::DIGIT_SYMBOL
NumberFormatter::MINUS_SIGN_SYMBOL
NumberFormatter::PLUS_SIGN_SYMBOL
NumberFormatter::CURRENCY_SYMBOL
NumberFormatter::INTL_CURRENCY_SYMBOL
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
NumberFormatter::EXPONENTIAL_SYMBOL
NumberFormatter::PERMILL_SYMBOL
NumberFormatter::PAD_ESCAPE_SYMBOL
NumberFormatter::INFINITY_SYMBOL
NumberFormatter::NAN_SYMBOL
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
Valores de modo de arredondamento usados por numfmt_get_attribute() e numfmt_set_attribute() com o atributo NumberFormatter::ROUNDING_MODE
.
NumberFormatter::ROUND_CEILING
NumberFormatter::ROUND_DOWN
NumberFormatter::ROUND_FLOOR
NumberFormatter::ROUND_HALFDOWN
NumberFormatter::ROUND_HALFEVEN
NumberFormatter::ROUND_HALFUP
NumberFormatter::ROUND_UP
Valores de posição de preenchimento usados por numfmt_get_attribute() e numfmt_set_attribute() com o atributo NumberFormatter::PADDING_POSITION
.
NumberFormatter::PAD_AFTER_PREFIX
NumberFormatter::PAD_AFTER_SUFFIX
NumberFormatter::PAD_BEFORE_PREFIX
NumberFormatter::PAD_BEFORE_SUFFIX