Programación General > C/C++
Re: Parte entera sin redondear
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
[#] Página Siguiente
Ir a la versión completa