> Faqs > Formatear decimales en PHP

Formatear decimales en PHP

Hola. Mi pregunta es ¿cómo puedo hacer en PHP que un número en coma flotante tenga dos decimales? o cualquier otra cantidad de decimales? Es decir, como redonderar el número a los decimales que se quiera, para que sólo muestre algunos decimales.

Respuestas

Este tema que preguntas lo tenemos resuelto en nuestro taller de PHP, en el artículo Redondear decimales en PHP.

No obstante, te comentamos que puede ser muy útil la función number_format() de PHP, que además formatea el número poniendo los "." para agrupar millares en la parte entera. Por ejemplo, para un número como este:

4553781,32113

Podrías obtener un resultado como este, donde se agrupan los millares con el punto y se separan con la coma los decimales, quedando redondeado a dos decimales:

4.553.781,32

La función number_format() recibe 4 parámetros en esta sintaxis:

number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

El primer parámetro es el único obligado, que es el número que se desea formatear. El segundo parámetro, opcional, es el número de decimales que se quieren mostrar (se hará un redondeo de los decimales para mostar sólo los que queramos).

El tercer parámetro y el cuarto parámetro también son opcionales, pero si utilizamos uno de los dos parámetros, de manera obligada tendremos que pasarle el otro. El cometido de esos parámetros es asignar un caracter para los separadores de decimales y los separadores de millares. En castellano separamos los decimales con una coma y los millares con un punto, así que en el tercer parámetro tendríamos que colocar una "," y en el cuarto un ".".

Unos ejemplos de la función podrían ser:

number_format(85552445223.31285,3,",",".") devolvería 85.552.445.223,313
number_format(1245645668953.843,2) devolvería 1,245,645,668,953.84
number_format(12845.98123,1,".",",") devolvería 12,846.0

Miguel Angel
3295 146 215 17