función ceil

18/02/2004 - 20:17 por Bruce Almighty | Informe spam
Saludos al grupo

¿Alguien me podria decir porque la funcion ceil( ) me está
devolviendo el redondeo de un numero pero hacia abajo?, por ejemplo:

tengo :

paquetes = ceil ( bytesrcv / 10000 );

donde bytesrcv = 36589

36589/10000 me dá a 3.6589 y yo espero que ceil ( ) me devuelva un 4
y sin embargo me devuelve un 3, ¿porque?

Ing. Francisco Javier Orozco Candela
Ingeniería Digital Aplicada S.A. de C.V.
 

Leer las respuestas

#1 Cholo Lennon
18/02/2004 - 20:45 | Informe spam
Lo que pasa es que se está generando una división entera (sospecho que tu
variable bytesrcv es tambien de algún tipo entero). Esto hace que el
resultado de bytesrcv / 10000 sea 3. De ahí que ceil retorna 3. Puedes
forzar una división de tipo doble escribiendo 10000.0 o 10000.f (o en el
peor de los casos redeclarando a bytesrcv como float o double):

paquetes = ceil ( bytesrcv / 10000.0 );


Saludos
Cholo Lennon
Salta, ARG

Preguntas similares