SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: marisab en Miércoles 16 de Julio de 2003, 17:48

Título: Re: Parte entera sin redondear
Publicado por: marisab en Miércoles 16 de Julio de 2003, 17:48
Hola:

¿Como puedo obtener la parte entera de un real, sin redondear ? (ANSI-C)

Gracias,:hippi:
Título: Re: Parte entera sin redondear
Publicado por: JuanK en Viernes 18 de Julio de 2003, 15:56
ejemplo

float num=3.51;
float residuo=0;
float entero=0;

residuo=num % 1;
entero=num-residuo;

en c el operador % (porcentaje) se usa para obtener el residuo de dividir un numeo entre otro y se conoce como modulador.

Juank
Título: Re: Parte entera sin redondear
Publicado por: plaf en Miércoles 30 de Julio de 2003, 05:37
es mas facil hacerlo directo:

float num=3.51;
int entero;

entero=(int)num;

y si lo quieres guardar en un float puedes poner ...=(float)(int)num; (sin el float te tiraria un warning pero igual funcionaria)
Título: Re: Parte entera sin redondear
Publicado por: JuanK en Miércoles 30 de Julio de 2003, 14:44
Lamentablemente con lo que tu dices no redondeas el numero, sino que lo truncas, yo cometi el mismo error.

Lo que hay que hacer es, con el metodo que te enseñe, determinar si el exedente al numero entero es mayor igual o menor a 0.5, y segun sea el caso se aproxima a donde sea pertinente.

Juank
Título: Re: Parte entera sin redondear
Publicado por: plaf en Miércoles 30 de Julio de 2003, 21:33
si pero la pregunta era sin redondear. para redondear tambien puedes hacer ...=(int)(num+0.5);
Título: Re: Parte entera sin redondear
Publicado por: JuanK en Miércoles 30 de Julio de 2003, 21:36
si que pena... yo si soy mucha pelota...
pido deisculpas a todos.. lo que pasa es que ultimamente ando como distraido..y no con mujeres(lastimosamente)
sino con el desarrollo de mi trabajo de grado...

Juank

Por ciertyo lo que dices tampoco sirve..si fuera para redondear..
Título: Re: Parte entera sin redondear
Publicado por: plaf en Miércoles 30 de Julio de 2003, 22:02
niños, la marihuana HACE daño :p
pero mmmm... seguro? xq si la parte decimal de num es >=.5, num+0.5 aumenta en 1 la parte entera y al truncarlo queda el numero redondeado, y si es <.5 se trunca y queda igual
Título: Re: Parte entera sin redondear
Publicado por: JuanK en Miércoles 30 de Julio de 2003, 22:06
ejemplo

0.2+0.5=0.7

truncado queda  = 0
y el redondeo deberia ser  = 1

..deja la marihuana en serio..y comprate un gamecoube...o ponte a programar videojuegos en c# y directx.. como hay por ahi...alguno..

Juank
Título: Parte entera sin redondear
Publicado por: plaf en Miércoles 30 de Julio de 2003, 22:40
parece q vamos a tener q cortarles la marihuana a los profes de basica, q nos enseñan diferente los conceptos. yo entendia por "redondear un numero con decimales" q si la parte decimal era >=.5 entonces se redondeara para arriba, y <.5 para abajo. o sea q redondear 2.7 es 3, pero 2.48 es 2. si hubieran escuchado a simon bolivar cuando proponia sudamerica como un solo pais no estaria pasando esto...