PHP y MySQL

PHP money_format(): Conversiones a formato moneda

Post de repaso de la función de PHP money_format() para realizar conversiones de números enteros a cadenas con formato moneda.

Otras funciones interesantes de PHP para realizar formateos son:

Sintaxis de PHP money_format()

Veamos la sintaxis de esta función extraída de su web oficial:

money_format(cadena, numero);

Se suele combinar con la función setlocale() para establecer la zona geográfica local en el sevidor, de esta manera ya se establece el formato de moneda en el que se trabaja.

Os explico los parámetros de money_format():

  • cadena (Obligatorio): Especificación del tipo de formateo.
  • numero (Obligatorio): Número a formatear.

Tipos de formateo

Veamos los tipos de formateo que se pueden dar (Extraídos de su web oficial):

  • =f: Se utilizará como el caracter de relleno numérico. Por defecto es el espacio.
  • ^: Deshabilita el uso de caracteres de agrupamiento.
  • + o (: Estilo de formateo con números positivos y negativos. el valor por defecto es ‘+’. Si se especifica ‘+’ se usarán los simbolos ‘+’ y ‘-‘. Si se especifica ‘(‘ las cantidades negativas se mostrarán entre paréntesis.
  • !:  Elimina el símbolo de moneda del formateo.
  • : Si se especifica todos los campos irán justificados a la izquierda, por defecto los campos se justifican a la derecha.
  • w: Especifica un ancho mínimo de campo. El valor por defecto es 0.
  • #n: Número máximo de dígitos a la izquierda del caracter decimal. En caso de que el número de dígitos real sea mayor que los dígitos esta especificación es ignorada.
  • .p: Número de digitos decimales. Con valor 0 el carácter decimal y los dígitos a su derecha serán omitidos. El valor por defecto será dictado por la configuración regional actual en uso.
  • i: Formateo de acuerdo al formato internacional de moneda de la configuración regional.
  • n: El número se formatea de acuerdo al formato nacional de moneda de la configuración regional.
  • %: Devuelve el caracter %.

Ejemplos de PHP money_format()

Vayamos con una par de ejemplos de money_format():

$cadena_numerica = 4239.57;
setlocale(LC_MONETARY,"es_ES");
echo money_format("%.2n", $cadena_numerica);

Explico el código superior:

  • Se asigna valor a la variable $cadena_numerica.
  • Con setlocale() se establece la zona monetaria local española.
  • Con echo y money_format() mostramos un formateo con 2 decimales.

El resultado del ejemplo es el siguiente:

EUR 4.239,57

Vamos con un nuevo ejemplo:

$cadena_numerica = 4239.57;
setlocale(LC_MONETARY,"es_ES");
echo money_format('%=*(#10.2n', $cadena_numerica);

Explico el código superior:

  • Se asigna valor a la variable $cadena_numerica.
  • Con setlocale() se establece la zona monetaria local española.
  • Con echo y money_format() mostramos un formateo con 2 dígitos decimales y con ‘*’ como caracter de relleno con un máximo de 10 digitos a la izquierda.

El resultado del ejemplo es el siguiente:

EUR ********4.239,57
compartir
Publicado por
Aner Barrena