Foros del Web » Programando para Internet » PHP »

redondeo de decimales

Estas en el tema de redondeo de decimales en el foro de PHP en Foros del Web. Hola amigos nuevamente reciban un coordial saludo. !!! tengo una duda, Ejemplo: $num=17.52728; Quiero redondearlo a 2 decimales pero la funcion que tengo solo la ...
  #1 (permalink)  
Antiguo 01/08/2003, 16:28
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 49
Antigüedad: 14 años, 7 meses
Puntos: 0
redondeo de decimales

Hola amigos nuevamente reciban un coordial saludo. !!!

tengo una duda, Ejemplo:

$num=17.52728;

Quiero redondearlo a 2 decimales pero la funcion que tengo solo la trunca a 2 decimales pero sin redondear:

17.52 // salida erronea
17.53 // salida deseada

Como puedo hacer eso
De ante mano les agradeceré mucho.

Atte...
WALHU
  #2 (permalink)  
Antiguo 01/08/2003, 16:40
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Creo que para redondeo tienes la funcion round() (www.php.net/round). ceil() y floor() redondean hacia arriba y hacia abajo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 01/08/2003, 16:44
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
La funcion CORRECTA es precisamente round()

Aunque dependiendo del fin que le des a los datos, otra opción pudiera ser number_format()

Saludos!
__________________
Manoloweb
  #4 (permalink)  
Antiguo 01/08/2003, 16:59
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 49
Antigüedad: 14 años, 7 meses
Puntos: 0
Ok gracias por la ayuda, ya probe con round() anteriormente floor() y ceil(), pero no hacen lo que necesito, me puse a investigar más a fondo y es la funcion number_format()
$num=17.52728;
$num=number_format($num, 2, '.', '');
echo $num; // y la salida es 17.53

Les paso por si lo necesitan en el futuro...gracias por el apoyo
Atte...
WALHU
__________________
walhu
  #5 (permalink)  
Antiguo 01/08/2003, 17:15
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pues para lo que lo usas, es mas simple (y si funciona como lo esperas) usar round()

$num=round($num,2);
__________________
Manoloweb
  #6 (permalink)  
Antiguo 01/08/2003, 18:01
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 3 meses
Puntos: 8
Seguramente lo que ha pasado es que, en la version en español de manual no figura en ningun momento que las funciones nombradas (round, floor, ceil) admiten el segundo parametro de presicion.
Por eso, walhu, te conviene bajar el manual en ingles, que simpre es el mas actualizado.

Ha! este segundo parametro es de php4 en adelante.

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:50.