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,...

La FAQ Formatear decimales en PHP tiene

Pertenece a la categoría:
Pregunta
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.
Respuesta de Miguel Angel Alvarez
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

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

Magno Coronel

21/5/2009
Redondear un numero en PHP
Para redondear usa la funciín intval(n);
Ejemplo
$numerodecimal=10.5;
$numeroentero=intval($numerodecimal);
echo "Decimal: " . $numerodecimal. " Entero: ". $numeroentero;

soltics

25/5/2011
precio con decimales php y mysql
para cargar un precio en la base de datos mysql con decimales debe ser tipo float (3.000,50 lo guardariamos como 3000.50), y para leerlo con php utilizamos la funcion number_format($row['precio'],numero de decimales,"separadordecimales","separadormiles")
pueden ver un ejemplo en mi pagina www.soltics.com.ve/computadoras.php
FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías