Diferencia entre revisiones de «objeto.toFloat()»
(→Referencias) |
(→Ejemplo 2) |
||
(No se muestran 10 ediciones intermedias de 2 usuarios) | |||
Línea 11: | Línea 11: | ||
== Retorna == | == Retorna == | ||
− | + | El valor convertido ([[float]]), o '''0.0''' en caso de que la cadena no empiece con una secuencia válida. | |
== Comentarios == | == Comentarios == | ||
Línea 19: | Línea 19: | ||
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. | 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 == | + | == Ejemplo 1 == |
+ | Convertimos una cadena de dígitos en [[float]]. | ||
+ | |||
+ | <syntaxhighlight lang="c++"> | ||
+ | String texto = "-123.45"; | ||
+ | |||
+ | void setup(){ | ||
+ | Serial.begin(115200); | ||
+ | float valor = texto.toFloat(); | ||
+ | Serial.println(valor); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | //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> | ||
+ | |||
+ | == Ejemplo 3 == | ||
+ | En este ejemplo pondremos en el monitor serie algo como: 123.456 y veras como respuesta 123.45 osea el numero en [[float]]. | ||
+ | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | String frase = ""; | ||
+ | float x; | ||
+ | |||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | while (Serial.available()){ | ||
+ | char caracter = Serial.read(); | ||
+ | frase.concat(caracter); | ||
+ | delay(10); | ||
+ | } | ||
+ | if (frase != ""){ | ||
+ | x = frase.toFloat(); | ||
+ | Serial.println(x); | ||
+ | frase = ""; | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Vea también == | == Vea también == | ||
− | + | <categorytree mode=all>String</categorytree> | |
== Referencias == | == Referencias == | ||
* [https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/tofloat/ Guia de referencia de Arduino] | * [https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/tofloat/ Guia de referencia de Arduino] | ||
− | * [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Luis Llamas | + | * [https://www.luisllamas.es/convertir-texto-a-numero-arduino/ Convertir texto a numero] - Luis Llamas |
− | [[Category: | + | [[Category:String]] |
Revisión actual del 15:38 20 sep 2019
Contenido
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
Convertimos una cadena de dígitos en float.
String texto = "-123.45";
void setup(){
Serial.begin(115200);
float valor = texto.toFloat();
Serial.println(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);
}
}
Ejemplo 3
En este ejemplo pondremos en el monitor serie algo como: 123.456 y veras como respuesta 123.45 osea el numero en float.
String frase = "";
float x;
void setup(){
Serial.begin(9600);
}
void loop(){
while (Serial.available()){
char caracter = Serial.read();
frase.concat(caracter);
delay(10);
}
if (frase != ""){
x = frase.toFloat();
Serial.println(x);
frase = "";
}
}
Vea también
Referencias
- Guia de referencia de Arduino
- Convertir texto a numero - Luis Llamas