Go Down

Topic: convertir dos enteros (24 y 60) en un float (24.60)(SOLUCIONADO++) (Read 1 time) previous topic - next topic

karagos

Jan 05, 2013, 12:40 am Last Edit: Jan 05, 2013, 03:29 pm by karagos Reason: 1
hola.
tengo almacenado en la eeprom dos numeros para la temperatura uno es el entero 24 y el otro el decimal 60.
al recuperarlo quiero que sea un float 24.60.
habia pensado hacerlo asi:
 pasar los dos numeros a cadena -> concatenarlos -> pasar la cadena a entero -> dividir el entero (2460) entre 100=26.60

pero  no encuentro como convertir un entero en cadena, es decir que 26 sea "26".
gracias

cueli

Y si divides el segundo por 100 y lo sumas la primero, almacenado el resultado de salida en un float ?¿?

karagos


karagos

bueno pues ya esta echo con esto podemos guardar en la memoria temperaturas y recuperarlas

//150 es la posicion de memoria y 24 es el valor y 151 su valor es 60
// leemos dos numeros de la memoria los juntamos y creamos la temperatura
int numero =EEPROM.read(150);
int numero2 =EEPROM.read(151);
//////// pasar 24 y 60 a 24.60////////
float numero3= numero+((float)numero2 / 100);//con (float) obligamos a que numero2 sea float pues si no es float no da resultado
Serial.println(numero3);//numero3= 24.60
//////////////////////////////////////////////////
////////////// pasar una cadena a float /////////////////////
//la cadena de la web la pasamos a float, es decir a temperatura para trabajar con ella
char *numeros="24.60";
float numero5= atof(numeros);//el resultado es 24.60 como float
Serial.println(numero5);
float numero6= atof("12.89");// el resultado es 12.89 como float
Serial.println(numero6);
///////////////////////////////////////////////////////
//////////// pasar una cadena a numero y separalo/////////////////
// la temperatura de la web  la pasamos a dos numeros enteros para guardarlos en la memoria
int numero7= atoi("23.51");// da como resultado el numero 23 entero
Serial.println(numero7);
float numero8= atof("23.51");// da como resultado 23.51
int numero9= (numero8-numero7)*100;// da como resultado el decimal 51
Serial.println(numero9);
//////////////////////////////////////////////////////////////
por si a alguien le puede valer ;)

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy