Conseguir números decimales de la función map

Hola estoy intentando medir números decimales con la función "map" y no lo consigo.

El código que tengo es el siguiente, pero no sé porque no me da el valor de salida con los valores decimales

float Vout; //Variable salida valor convertido

void setup()
{
Serial.begin(9600); //Iniciamor el puerto Serie a 9600 bps
}

void loop()
{
int lectura = analogRead(A0); //Variable lectura valor analógico
Vout = map(lectura,0,1023,0,5.0);
Serial.print ("Valor binario: ");
Serial.print(lectura,BIN); //Valor variable lectura en binario
Serial.print(" --- ");
Serial.print("Valor DEC: " );
Serial.print(lectura,DEC); //Valor variable lectura en decimal
Serial.print(" --- ");
Serial.print("Vout: ");
Serial.println(Vout); //Convertimos la lectura a un valor de tensión entre (0V y 5V)
delay(800);
}

Hola, creo que se debe a que la función no devuelve decimales.

Mi truco, porque me topé con algo similar, fué hacer esto.

Vout = map(lectura,0,1023,0,500);

Vout = Vout / 100.00;

Creo que eso te devolverá con 2 decimales.

Ya si se estudia mejor una de las variables, no se bien cuál es, se le puede pedir que devuelva con decimales.

Muchas gracias por la idea, era lógica pero yo no supe verla.

Gracias.

Hola un aporte quizás a alguien le sirve.

volts = volts * 100;
volts = map(volts, 100, 780, 10, 150);
volts = volts / 100;

multiplico por 100 para pasar de decimal a entero (00.00 => 0000), hago funcion map con valores grandes
y luego vuelvo a dividir por 100 para volver a obtener los decimales (0000 => 00.00).

Saludos!