Trabajar con la parte entera de un float

nosic
06 de Marzo del 2004
hola, me gustaria saber como puedo pasar un float a int, para operar con el, me explico, un programa q he hecho con variables float, kiero perfeccionarlo para que en el caso de introducir una letra, y no un numero como debe de ser aparezca un mensaje de error, y una manera q se me ocurre es con una condicion en base al codigo ascci (si es menor o mayor q tal, pues error), si alguien sabe como puedo controlar ese "fallo de programacion" q me lo diga, gracias

joseie1
06 de Marzo del 2004
no me acuerdo pa\' que habia hecho esta función pero cumple lo que pides:

#include <stdlib.h> //para atof()
#include <ctype.h> // para isdigit()

float verifica(char *n)
{
int i;

for(i=0; n[i]!=\'\0\'; i++)
if(!isdigit(n[i]) && n[i]!=\'.\')
return -1;

return (atof(n));
}

// ejemplo en el main()
main()
{
char *cadena;
float num;

printf("Ingresa numero: ");
scanf("%s", cadena);

if( (num=verifica(cadena)) == -1)
// codigo de error porque no es numero
else
printf("%0.2f\n", num);
}

ojalá te sirva.

noel solw
06 de Marzo del 2004
Perdoname, pero tu hablas de muchas cosas al mismo tiempo y es dificil entender lo que quieres.
La conversion de float a int es muy facil, supongamos
dos variables float b = 17.45 e int a, y la operacion :
a = b;
el valor de a sera : a = 17.
En lo que respecta al resto de tus dudas, explicate mejor y tratare de ayudarte.