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