• Viernes 15 de Noviembre de 2024, 10:32

Autor Tema:  Re: Parte entera sin redondear  (Leído 9901 veces)

marisab

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Parte entera sin redondear
« en: Miércoles 16 de Julio de 2003, 17:48 »
0
Hola:

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

Gracias,:hippi:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Parte entera sin redondear
« Respuesta #1 en: Viernes 18 de Julio de 2003, 15:56 »
0
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
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Parte entera sin redondear
« Respuesta #2 en: Miércoles 30 de Julio de 2003, 05:37 »
0
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)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Parte entera sin redondear
« Respuesta #3 en: Miércoles 30 de Julio de 2003, 14:44 »
0
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
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Parte entera sin redondear
« Respuesta #4 en: Miércoles 30 de Julio de 2003, 21:33 »
0
si pero la pregunta era sin redondear. para redondear tambien puedes hacer ...=(int)(num+0.5);

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Parte entera sin redondear
« Respuesta #5 en: Miércoles 30 de Julio de 2003, 21:36 »
0
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..
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: Parte entera sin redondear
« Respuesta #6 en: Miércoles 30 de Julio de 2003, 22:02 »
0
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

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Parte entera sin redondear
« Respuesta #7 en: Miércoles 30 de Julio de 2003, 22:06 »
0
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
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

plaf

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Parte entera sin redondear
« Respuesta #8 en: Miércoles 30 de Julio de 2003, 22:40 »
0
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...