(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
Los programas almacenan y operan sobre números utilizando una representación binaria independiente de la configuración regional. Cuando se muestra o imprime un número, éste es convertido a una cadena específica regional. Por ejemplo, el número 12345.67 es "12,345.67" en los Estados Unidos, "12 345,67" en Francia y "12.345,67" en Alemania.
Al invocar a los métodos proporcionados por la clase NumberFormatter, se pueden formatear números, valores monetarios y porcentajes de acuerdo a la configuración regional especificada o predeterminada. NumberFormatter es sensible a la configuración regional, por lo que se necesita crear un nuevo objeto NumberFormatter para cada región. Los métodos de NumberFormatter dan formato a números de tipo primitivo, tales como los de tipo double, e imprimien el número como una cadena específica según la región.
Para los valores monetarios se puede utilizar el tipo de formato de moneda para crear un formateador que devuelva una cadena con el número formateado y el símbolo de moneda apropiada. Por supuesto, la clase NumberFormatter ignora los tipos de cambio monetarios, por lo que el número impreso es el mismo sin tener en cuenta la moneda especificada. Esto significa que el mismo número tiene diferentes valores monetarios dependiendo de la moneda regional. Si el numero fuese el 9988776.65, los resultados serían:
Para dar formato a los porcentajes, se debe crear un formateador específico de la región con el tipo de formato de porcentaje. Con este formateador, una fracción decimal como 0.75 será mostrada como 75%.
Para un formateo más complejo, como los números escritos con palabras, se usan los formateadores de números basados en reglas.
Estos estilos son utilzados por la función numfmt_create() para definir el tipo del formateador.
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)
Estas constantes definen cómo se procesan o formatean los números. Deberían usarse como argumentos de numfmt_format() y numfmt_parse().
NumberFormatter::TYPE_DEFAULT
(integer)
NumberFormatter::TYPE_INT32
(integer)
NumberFormatter::TYPE_INT64
(integer)
NumberFormatter::TYPE_DOUBLE
(integer)
NumberFormatter::TYPE_CURRENCY
(integer)
Atributos de formato numérico usados por numfmt_get_attribute() y 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)
Atributos de texto de formato numérico utilizados por numfmt_get_text_attribute() y 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)
Símbolos de formato numérico utilizados por numfmt_get_symbol() y 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)
Los valores del modo de redondeo utilizados por numfmt_get_attribute()
y numfmt_set_attribute() con el
atributo 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)
Valores de posición de relleno utilizados por numfmt_get_attribute()
y numfmt_set_attribute() con el
atributo NumberFormatter::PADDING_POSITION
.
NumberFormatter::PAD_AFTER_PREFIX
(integer)
NumberFormatter::PAD_AFTER_SUFFIX
(integer)
NumberFormatter::PAD_BEFORE_PREFIX
(integer)
NumberFormatter::PAD_BEFORE_SUFFIX
(integer)