storing Serial bytes to a float variable

I'm reading values from a sensor, coming in as serial data.

The values come in multiple Serial bytes as follows:
For example a sensor reading of 2.16 comes in as the following four bytes: '2', '.', '1', '6'
Fairly simple, and it's been easy to print those 4 bytes out individually just using mySoftSerial.read() for each incoming byte; and then Serial.print(...) the 4 bytes to the terminal.

However, I would like to STORE altogether the four separate incoming Serial bytes of the value "2.16"... specifically, I want to store into one float variable so I can do arithmetic with it.
What would be an effective way to accomplish that?

Seems like a common thing to do, but I haven't come across any simple method.

[sidenote: I tried the approach discussed in a past thread, of using a union that has a float and a byte array, but that didn't solve the problem here because it appears the incoming data also has to have been sent out from a byte array originating from a union, which is not the case here]

If you store the characters received from the sensor in a character array, and append a null character when you have finished receiving characters, then you can use the atof() function to convert them to a double, and thence to a float.

On the Arduino I believe double and float are the same thing, an IEEE 32 bit float.

That worked successfully. Thanks dc42. Why the null character at the end by the way?

And indeed arduino's implementation of double and of float appear to be identical:
"The double implementation on the Arduino is currently exactly the same as the float, with no gain in precision." [http://arduino.cc/en/Reference/Double]

The null makes it a C string, and shows the string routines like atof or atoi where the string ends.