TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Rulo en 18 de Septiembre de 2007, 16:53:28
-
Hola!!
tengo una duda, lo que quiero hacer es, apartir de 2 int formar un float.
ejemplo;
int x=20;
int y=53;
float z;
Que z = 20.53;
Alguien sabe como lo logro?''
Saludos
Gracias :-/
-
:mrgreen:
-
que facil no?'' :D
y yo buscando una funcion que lo hiciera, como FMOD que vendria haciendo lo contrario.
tambien el ATOF( ) me podria servir.
Gracias Red.
Saludos
-
Solo como consejo puede que algun compilador no te haga el casteo automático y debas hacerlo a mano, siguiendo el simplísimo y efectivísimo ejemplo de don diego quedaría
z = (float) x + (float) Y / 100.0 ;
Si bueno y simple, doblemente bueno. :)
Saludos
-
Pues si que los debe llevar (float).
Gracias Maunix :-).
-
Que ocurre si y = 5, tendremos: 20.05, cuando deberiamos tener: 20.5.
Podriamos utilizar: sprintf(cadena,"%u\.%u",x,y) y pasarlo a float con strtod(cadena,&ptr);
Un saludo
-
Exacto, aun que en donde lo utilizo siempre recibo 2 digitos, por lo que no tengo problema.
Por ello mencione que podria utilizar ATOF();
aqui el ejemplo de CCS
char string [10];
float x;
strcpy (string, "123.456");
x = atof(string);
// x is now 123.456
Saludos :)
-
Exacto, aun que en donde lo utilizo siempre recibo 2 digitos, por lo que no tengo problema.
Ese dato no lo sabiamos, en cuyo caso la solución aportada por RedPic es más eficiente.
Un saludo