Formato de números en PHP

  • Por
  • 28 de marzo de 2008
  • Valoración:
  • 12 Comentarios
  • Scripts en PHP
Explicaciones y ejemplos sobre formato de números en PHP. Aprendemos a formatear números en PHP con puntos entre los millares y comas en decimales.
Cuando mostramos un número en una página web podemos querer que tenga un formato específico. Por ejemplo, que tenga sólo dos decimales, o que utilice comas -o puntos- para separar decimales, así como las unidades de millar. Típicos formatos de número podrían ser:

1.000.505,56
5003.60
5,000.00


Presentar los números con uno u otro formato es sencillo, ya que en PHP existe una función específica para dar formato a los números, que dependiendo de los parámetros recibidos los formateará de una u otra manera. En este artículo vamos a conocer dicha función, así como sus posibilidades de configuración y ver varios ejemplos.

Función number_format()

El formateo de números lo llevaremos a cabo con la función de PHP number_format(). Esta función recibe uno, dos o cuatro parámetros. Es decir, tenemos estas restricciones:
  • Hay un único parámetro obligado (el número que queremos formatear).
  • El segundo parámetro es opcional, tal como el tercero y el cuarto
  • Pero si especificamos el tercer parámetro, estamos obligados a especificar también el cuarto.
Veamos con detalle los parámetros de la función de formateo de números de PHP, con diversos ejemplos.

Parámetro 1, el número:
El primer parámetro es el número a formatear. Tal como dijimos, aunque resulta obvio, es un parámetro siempre necesario.

$numero = 15200.67;
number_format($numero);
//devuelve 15,201


En este caso, el formateo del número nos dará el número sin decimales y con una coma como separador de miles. Este formato es el que se utiliza en inglés (las personas de habla inglesa separan con comas los millares al escribir los números), que seguramente no nos sirva a los desarrolladores que trabajamos en español.

Cabe fijarse que la función number_format() ha realizado también un redondeo de los decimales que no está mostrando. Este redondeo lo vamos a ver bien en este ejemplo:

$numero = 999999999.99;
number_format($numero);
//devuelve 1,000,000,000


Parámetro 2, los decimales:
Con el segundo parámetro, que es opcional, indicamos el número de decimales que queremos que aparezcan en el número formateado.

$numero = 15200.67;
number_format($numero,2);
//devuelve 15,201.67


Como vemos, en este caso se han incorporado dos decimales al formato del número. Utiliza comas para separar los miles y un punto para separar las unidades de millar. Como vemos, sigue utilizando la notación inglesa para formatear números.

Otro ejemplo, en el que podemos apreciar que siempre se hace un redondeo del número, si los decimales a mostrar son menos que los que tiene el número original.

$numero = 1885200.89;
number_format($numero,1);
//devuelve 1,885,200.9


Parámetros 3 y 4, separadores de decimales y de unidades de millar
Los últimos parámetros, que debemos utilizar siempre juntos, sirven para especificar los separadores que queremos utilizar para los decimales y las unidades de millar. Si queremos formatear los números con la notación española tendríamos que utilizar forzosamente estos parámetros.

Por ejemplo, así haríamos para formatear los números en español:
  • Separar los decimales con coma
  • Separar las unidades de millar con un punto.
$numero = 1002002.365;
number_format($numero, 2, ",", ".");
//devuelve 1.002.002,37


Si, por ejemplo, no separar los millares, simplemente pasamos como separador de unidades de millar (cuarto parámetro) la cadena vacía:

$numero = 9540.2;
number_format($numero, 2, ",", "");
//devuelve 9540,20


Conclusión sobre el formato de números con PHP

Eso es todo lo que tenemos que saber para formatear números en PHP. Como se ha podido ver es bien sencillo presentar los números con los decimales que necesitemos y con los separadores correctos de decimales y millares para el idioma español.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Comentarios

Droope

03/12/2009
Ninguno
Gracias por el artículo ;) Me sirvió mucho, y me ahorró mucho trabajo.

¡Un gran saludo!
Pedro2

leibnytz byron osorio

24/1/2010
o.k. perfecto
gracias me sirvio mucho muy agradecido

jose abm

27/1/2010
muy bueno el aporte
hay cosas que a uno se le pasan pero gracias a ustedes se pueden mejorar... gracias

aite_aite

11/3/2010
Formato en php
Muy fácil, no creí que lo fuera!
Gracias y muy bueno, me ayudó mucho ya que estoy iniciando en php hace un par de meses. Saludo!

rafael

16/5/2010
Formato de numeros
Excelente, gracias por la ayuda!!

jose

24/11/2010
Hola
Y si tenemos este numero 1.200,34 y queremos 1200.34 ??

Luis M Gómez

23/2/2011
Gracias
Gracias, hace rato estaba buscando de colocar el separador de miles y no sabia como hacerlo, la verdad no pensé que fuera tan sencillo.. muchas Gracias.

Eduardo

21/3/2012
Sobre mascara de salida
Hola, busco algo que me ofrezca el número 4 como 0004, es decir, rellenando tantos huecos como hagan falta para tener 4 carácteres!
tengo esto, pero no va <td>
<?= formatoNumero($alumno -> matricula,4) ?>

Edwin

06/12/2012
Gracias
Muy Buen aporte, Muy Util.

santiagogn22

21/3/2013
gracias
me saco de un gran apuro muchas gracias.

Marlene

15/8/2013
Format_number
Excelente articulo, me soluciono el problema que tenia con el separador de decimales. GRACIAS!!!!
ukc4

juan carlosç

20/1/2014
Gracias por la aportaciòn
gracias carnal esto me sirvió para implementar esto en un sistema Contable

Compartir