Me he llevado un buen rato buscando y no he encontrado una función que me satizfaga completamente para convertir un float a String, así que he sacado la caja de herramientas de programación y he creado esta función, basándome en dtostrf.
// Convierte un float en una cadena.
// n -> número a convertir.
// l -> longitud total de la cadena, por defecto 8.
// d -> decimales, por defecto 2.
// z -> si se desea rellenar con ceros a la izquierda, por defecto true.
String floatToString( float n, int l, int d, boolean z){
char c[l+1];
String s;
dtostrf(n,l,d,c);
s=String(c);
if(z){
s.replace(" ","0");
}
return s;
}
Ejemplo:
// pruebaFloat.ino
String floatToString( float,int=8,int=2,boolean=true);
void setup() {
float n = 0.5;
Serial.begin(115200);
Serial.println( floatToString(n,6) );
}
void loop() {
}
// Convierte un float en una cadena.
// n -> número a convertir.
// l -> longitud total de la cadena, por defecto 8.
// d -> decimales, por defecto 2.
// z -> si se desea rellenar con ceros a la izquierda, por defecto true.
String floatToString( float n, int l, int d, boolean z){
char c[l+1];
String s;
dtostrf(n,l,d,c);
s=String(c);
if(z){
s.replace(" ","0");
}
return s;
}
Si te fijas bien, me he basado en esa función, pero con dos particularidades:
1.- Devuelve un String (en vez usar un buffer char -que se usa dentro de la funcion-).
2.- El resltado lo puedes obtener con o sin ceros a la izquierda.
Mas que nada para ahorrar, cada vez que tengo que convertir un float a String con ceros a la izquierda, tener que repetir el mismo código.
Hola se que a pasado mucho tiempo desde que se cerro esto, pero tengo una duda que quizas aca me puedan resolver tengo dos flotantes que quisera meter a travez de sprintf, si utilizo lo que ustedes han expuesto trabaja bien pero solo con una variable, pero la segunda se pierde, me explico mejor tengo un gps que toma la latitud y longitud ambos como flotantes, la idea es enviar un sms con los dos valores a través de sprintf obviamente en un solo mensaje pero no logro crear el empaque para enviarlos, alguna idea, desde ya muchas gracias adjunto el codigo.
Cierro el hilo definitivamente! Xtremixt! Te agradezco mucho (muchísimo) que hayas investigado en el foro pero no está bien que se reviva un hilo de hace dos años atrás. Por favor, inicia un hilo nuevo explicando detalladamente tu problema completo, sube fotos, sube código, pega URLs en las que hayas investigado, incluyendo este mismo hilo. Saludos y Gracias!