Programación General > C/C++

 Re: Parte entera sin redondear

(1/2) > >>

marisab:
Hola:

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

Gracias,:hippi:

JuanK:
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

plaf:
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:
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

plaf:
si pero la pregunta era sin redondear. para redondear tambien puedes hacer ...=(int)(num+0.5);

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa