convertir valores float a string y juntarlos de una coordenadas

Saludos, alguien me puede echar la mano en la conversión de 2 datos float convertirlos a string, para juntarlos en un solo valor e imprimir el resultado en modo string he aquí el code.

#include <SoftwareSerial.h> //Incluimos la libreria Software Serial
#include <TinyGPS.h>


TinyGPS gps;
SoftwareSerial GPS1(12, 13);

float flat, flon; 



void setup() {

 
   Serial.begin(9600);
   GPS1.begin(9600);

}

// the loop function runs over and over again forever
void loop() {
 
bool newData = false;
   unsigned long chars;
   unsigned short sentences, failed;
   
   // Intentar recibir secuencia durante un segundo
   for (unsigned long start = millis(); millis() - start < 1000;)
   {
      while (GPS1.available())
      {
         char c = GPS1.read();
         if (gps.encode(c)) // Nueva secuencia recibida
            newData = true;
      }
   }
 
   if (newData)
   {
     
      unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
    Serial.print("LAT=");
    Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
    Serial.print(" LON=");
    Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);

    //convertir esos 2 datos  (flat, 6) a estring para juntarlos en un solo serial print
    //convertir esos 2 datos  (flon, 6) a estring para juntarlos en un solo serial print
  //algo asi 
  
  String datos = flat, 6 , flon, 6;
   
    Serial.print(datos);
   
     }
 
   gps.stats(&chars, &sentences, &failed);
  Serial.print(" CHARS=");
  Serial.print(chars);
  Serial.print(" SENTENCES=");
  Serial.print(sentences);
  Serial.print(" CSUM ERR=");
  Serial.println(failed);

  } 





   
}

Puedes hacer un cast de variables numericas a String:

float primero = 34.56;
float segundo = 45.89;
String resultado = String(primero) + "-" + String(segundo);
Serial.println(resultado);

Muchas gracias me ayudo mucho, saber como convertirlo