Trabajar con la parte entera de un float
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
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.
#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.
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.
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.
