Yo no veo nada mal en el código pero si las frases se imprimen bien y los floats no, una solución de emergencia podría ser convertir el float en una frase y luego imprimir la frase.
Por ejemplo, imprimir "litros" con 2 decimales
float litros = 425.63;
long a;
String ss;
a = (long) litros;
ss = String(a, DEC);
Serial.print(ss);
Serial.write('.');
a = (long) (litros*100.0);
a %=100;
ss = String(a, DEC)
Serial.print(ss);