Título: redondeado en C con funciones. Publicado por: ryan parker en 1 Mayo 2012, 18:55 pm tratando de realizar el siguiente problema:
Una aplicacion de funcion floor es la de redondear un valor al entero mas cercano, la instruccion: Código redondea el numero x al entero mas cercano, y asigna el resultado a y. Escriba un programa que lea varios numeros al entero mas cercano, Por cada uno de los numeros procesados, imprima el numero original y el numero redondeado. estoy tratando de escribir un modelo base: Código
Ahora estuve adaptandolo en un modelo base de funciones: Código
Código: si x=3.5 entonces resulta y=4 no se si esto este bien, por que espera la suma del .5, por ejemplo del 2.3 + 0.5 -> 2.8 entonces y deberia tener -> 3 alguna explicacion o necesito revisar la teoria de la aritmetica ? Claro que si corren en un compilador ansi este vota warning! :/ Título: Re: redondeado en C con funciones. Publicado por: STANHMAL en 1 Mayo 2012, 20:31 pm Hola que tal,
Bueno la función que tienes no esta haciendo nada, puesto que le entra un float, y retorna el mismo float. para lo que quieres hacer necesitas la utilización de la función ceil, en conjunto de floor, ambas en math.h Código
o sí lo prefieres modular: Código
$4!u2 Título: Re: redondeado en C con funciones. Publicado por: exel en 1 Mayo 2012, 21:10 pm Hola
El Warning que muestra el compilador es una advertencia; esto sucede porque la variable y es un entero mientras que lo que devuelve tu funcion floor es un valor de punto flotante, entonces el compilador se ve obligado a truncar el valor que devuelve tu funcion para asignarlo a y. Existen muchas maneras de resolver la situacion. Yo propongo la siguiente solucion: Código
Título: Re: redondeado en C con funciones. Publicado por: ryan parker en 2 Mayo 2012, 00:17 am Gracias a ambos por sus propuestas no habia pensado en hacer la resta del entero y realizar las comparaciones. :)
Y ni enterado que existia el floor en las librerias :o Excelente por ambos, tengo mucho por aprender. Título: Re: redondeado en C con funciones. Publicado por: Iranny en 4 Diciembre 2013, 21:46 pm Disculpen la molestia pero para redondear un número a entero por ejemplo
si es 2678 que me lo redondee a 2700 el código mencionado aquí seria parecido para hacer este redondeo o se tendría que utilizar algunas otras funciones y cuestiones para hacer este. Si me podrían ayudar con ese condigo les agradecería mucho es para un examen Saludos |