Estrarre numeri da Seriale

Grazie,scusa se torno a romperti,ho tolto come mi hai suggerito la parte di gestione decimale,ho cambiato il tipo di variabile da float ad int,per far muovere i servo motori ho aggiunto map(ricevuta,0,1000,0,180) che ho messo solo al pollice per il momento;
Nonostante ciò i servo motori continuano a fare dei piccoli movimenti senza senso,forse la sensibilità da aggiustare,ma non si muovono come dovrebbero.
Scusa ancora se ti rompo,Grazie

#include <Servo.h>
#include <SoftwareSerial.h>
SoftwareSerial receive(2, 3);

int ricevuta; // per la gestione della variabile in trasmissione
char rx; // il carattere ricevuto
int stato; // lo stato della ricezione

Servo pollice;
Servo indice;
Servo medio;
Servo anulare;
Servo mignolo;


void setup()
{
    pollice.attach(8);
    indice.attach(7);
    medio.attach(6);
    anulare.attach(5);
    mignolo.attach(4);
    
    pollice.write(0);
    indice.write(0);
    medio.write(0);
    anulare.write(0);
    mignolo.write(0);
    
    Serial.begin(9600);
    receive.begin(9600);
}

void loop()
{
    if (receive.available())
    {
        rx = receive.read();          // Leggo il primo carattere

        if (rx == '#')                 // se è il cancelletto comincio la lettura
        {
            stato = 1;
            ricevuta = 0;                // Ricevuta è la variabile di appoggio dove faccio i calcoli
        }

        if (rx <= 'E' && rx >= 'A')    // Fine trasmissione
        {
            switch (rx)
            {
                case 'A':
                    ricevuta=map(ricevuta,0,1000,0,180);
                    pollice.write(ricevuta);
                    break;

                case 'B':
                    indice.write(ricevuta);
                    break;

                case 'C':
                    medio.write(ricevuta);
                    break;

                case 'D':
                    anulare.write(ricevuta);
                    break;

                case 'E':
                    mignolo.write(ricevuta);
                    break;

                default:
                    break;
            }
        }

        stato = 0;
    }

    

    if (rx <= '9' && rx >= '0')    // Una cifra
    {
        if (stato == 1)              // Parte intera
        {
            ricevuta = ricevuta * 10 + rx - '0';         // Shiftare di una cifra e aggiungere l'ultima
           
        }

       
    }
}