Diferencia entre revisiones de «Serial.parseFloat()»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo)
 
(No se muestran 8 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
Devuelve el primer número válido de punto flotante del búfer en serie. Los caracteres que no son dígitos (o el signo menos) se ignoran. '''parseFloat()''' es terminado por el primer carácter que no es un número de coma flotante.
+
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 ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 
Serial.parseFloat();
 
Serial.parseFloat();
 +
Serial.parseFloat(caracter);
 
</pre>
 
</pre>
  
 
== Parámetros ==
 
== Parámetros ==
 +
;caracter: caracter a ignorar una vez iniciado el proceso ([[char]]).
  
 
== Retorna ==
 
== Retorna ==
Retorna un numero tipo [[float]].
+
Retorna un numero tipo [[float]], o '''0.0''' si no encuentra nada.
  
 
== Advertencias ==
 
== Advertencias ==
Nada.
+
* 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 ==
+
== Ejemplo 1 ==
 +
<syntaxhighlight lang="c++">
 +
1.23  --> 1.23
 +
a1.23 --> 1.23
 +
1.23a --> 1.23
 +
1a2b3 --> 1.00, 2.00 y 3.00
 +
</syntaxhighlight>
 +
 
 +
== Ejemplo 2 ==
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
 
void setup(){
 
void setup(){
Línea 22: Línea 38:
 
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 ==
* [[Serial.begin()]]
+
<categorytree mode=all>Serial</categorytree>
* [[Serial.available()]]
 
* [[Serial.read()]]
 
* [[Serial.print()]]
 
* [[Serial.setTimout()]]
 
* [[Serial.end()]]
 
  
 
== Referencias ==
 
== Referencias ==
  
[[Category:Funciones]]
+
[[Category:Serial]]

Revisión actual del 22:41 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 1

1.23  --> 1.23
a1.23 --> 1.23
1.23a --> 1.23
1a2b3 --> 1.00, 2.00 y 3.00

Ejemplo 2

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

Vea también


Referencias