Serial.parseFloat() retrieves the first valid floating point number from the Serial buffer. parseFloat() is terminated by the first character that is not a floating point number. The function terminates if it times out (see Serial.setTimeout()).
Serial.parseFloat() inherits from the Stream utility class.
Use one of the following function variants to search for a floating-point number on the serial buffer:
Serial.parseFloat()Serial.parseFloat(lookahead)Serial.parseFloat(lookahead, ignore)The function admits the following objects and parameters:
Serial: serial port object. See the list of available serial ports for each board on the Serial main page.
lookahead: the mode used to look ahead in the stream for a floating point number. Allowed data types: LookaheadMode. Allowed lookahead values:
SKIP_ALL: all characters other than a minus sign, decimal point, or digits are ignored when scanning the stream for a floating point number. This is the default mode.SKIP_NONE: Nothing is skipped, and the stream is not touched unless the first waiting character is valid.SKIP_WHITESPACE: Only tabs, spaces, line feeds, and carriage returns are skipped.ignore: used to skip the indicated char in the search. Used for example to skip thousands divider. Allowed data types: char
The function returns the first floating-point number found. Data type: float.
The following code extracts the first valid floating point number received on the serial:
void setup() {
Serial.begin(9600);
while (!Serial)
;
Serial.println("Enter a floating-point number:"); // try with a mixed phrase e.g. "The size of the box is 3.5 mm"
}
void loop() {
if (Serial.available()) {
float number = Serial.parseFloat();
if (number != 0) {
Serial.print("You entered: ");
Serial.println(number);
}
}
}