Diferencia entre revisiones de «objeto.toFloat()»

De ArduWiki
Saltar a: navegación, buscar
(Retorna)
(Ejemplo 1)
Línea 32: Línea 32:
 
void loop(){
 
void loop(){
 
   //Nada.
 
   //Nada.
 +
}
 +
</syntaxhighlight>
 +
 +
== Ejemplo 2 ==
 +
En este ejemplo pondremos en el monitor serie algo como: 123,456,789 y veras como respuesta 456.00 osea el numero entre las , en [[float]].
 +
 +
<syntaxhighlight lang="c++">
 +
void setup() {
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop() {
 +
  String num = "";
 +
  while (Serial.available()){
 +
      char c = Serial.read();
 +
      num = num + c;
 +
      delay(10);
 +
  }
 +
  if (num != ""){
 +
      byte pos1 = num.indexOf(",") +1;
 +
      byte pos2 = num.indexOf(",",pos1);
 +
      float n = num.substring(pos1,pos2).toFloat();
 +
      Serial.println(n);
 +
  }
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Revisión del 15:28 20 feb 2019

Descripción

Convierte una objeto válido en un numero tipo float. La cadena de entrada debe comenzar con un dígito. Si la cadena contiene caracteres que no son dígitos, el método dejará de realizar la conversión.

Sintaxis

objeto.toFloat();

Parámetros

objeto
nombre de la instancia de la clase String

Retorna

El valor convertido (float), o 0.0 en caso de que la cadena no empiece con una secuencia válida.

Comentarios

Por ejemplo, las cadenas "123.45", "123" y "123fish" se convierten a 123.45, 123.00 y 123.00 respectivamente. Tenga en cuenta que "123.456" se aproxima a 123.46.

Advertencias

Tenga en cuenta también que los numero float tienen solo 6-7 dígitos decimales de precisión y que las cadenas más largas pueden estar truncadas.

Ejemplo 1

#define DEBUG(a) Serial.println(a);
String texto = "-123.45";
 
void setup(){
   Serial.begin(9600);
   float valor = texto.toFloat();
   DEBUG(valor);
}
 
void loop(){
   //Nada.
}

Ejemplo 2

En este ejemplo pondremos en el monitor serie algo como: 123,456,789 y veras como respuesta 456.00 osea el numero entre las , en float.

void setup() {
   Serial.begin(9600);
}

void loop() {
   String num = "";
   while (Serial.available()){
      char c = Serial.read();
      num = num + c;
      delay(10);
   }
   if (num != ""){
      byte pos1 = num.indexOf(",") +1;
      byte pos2 = num.indexOf(",",pos1);
      float n = num.substring(pos1,pos2).toFloat();
      Serial.println(n);
   }
}

Vea también

Referencias