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