Diferencia entre revisiones de «Serial.parseFloat()»

De ArduWiki
Saltar a: navegación, buscar
(Referencias)
(Ejemplo)
Línea 30: Línea 30:
 
void loop(){
 
void loop(){
 
   if (Serial.available()){
 
   if (Serial.available()){
       byte car = Serial.peek();   //Lee carácter enviado y NO borra del buffer.
+
       float num = Serial.parseFloat();
       Serial.write(car);           //Imprime siempre lo mismo
+
       Serial.println(num, 2);
 
   }
 
   }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
== Vea también ==
 
== Vea también ==

Revisión del 22:32 18 oct 2019

Descripción

Busca el siguiente número punto flotante entre los datos entrantes, asumiendo que está codificado como texto y que el separador decimal es un punto ('.'). Se rige bajo las siguientes reglas:

  • Los caracteres iniciales que no son dígitos o un signo menos, se saltan.
  • El análisis se detiene cuando el tiempo de espera se agota, o se lee un caracter que no es dígito (excluyendo el ignorado y el punto si es el primer encuentro).
  • Si no se leyeron dígitos válidos durante el tiempo de espera (vea Serial.setTimeout()), se devuelve 0.0.

Sintaxis

Serial.parseFloat();
Serial.parseFloat(caracter);

Parámetros

caracter
caracter a ignorar una vez iniciado el proceso (char).

Retorna

Retorna un numero tipo float, o 0.0 si no encuentra nada.

Advertencias

  • Si de parámetro se introduce el símbolo de menos ('-'), el valor retornado nunca será negativo.
  • Si de parámetro se introduce el punto ('.'), la función fallará en reconocer las cifras decimales.
  • Este parámetro es muy útil para ignorar coma (',') en números como: 10,000.

Ejemplo

void setup(){
   Serial.begin(9600);
}
void loop(){
   if (Serial.available()){
      float num = Serial.parseFloat();
      Serial.println(num, 2);
   }
}

Vea también


Referencias