Olá, Pessoal. Boa tarde!

Eu tenho uma String com o valor de "12.5" e gostaria de poder fazer uma verificação numérica (IF) mas para isso preciso converte-la par Float(pois tem decimais, certo?)

Está assim:

String meuvalor ="12.5";


Eu preciso coverter esse meuvalor para uma tipo FLOAT pois preciso do ".5". Consegui converter para inteiro, mas ai ai eu perco os decimais.

Preciso converter para Float para poder fazer uma condição IF.


Se alguem puder me dar uma dica, eu agradeço!!

Obrigado

Exibições: 911

Responder esta

Respostas a este tópico

Tente usar:

double meuvalor ="12.5";

mas no meu caso eu ja tenho uma string com um valor

Eu precisava converter para float(por ter casas decimais)

Olá Rodrigo, 

Tente usar este exemplo, a função StrToFloat converte a string para um float.

Para teste da função, o resultado float é subtraido de 100 e enviado pela serial.

O float também é comparado com um número (87.5) e se for igual o led no pino 13 é aceso.

// pino do LED
int led = 13;
// string a ser convertida
String str="12.5";
// variavel float
float total;

// função para converter string para float
float StrToFloat(String str){
char carray[str.length() + 1]; //determina o tamanho do array
str.toCharArray(carray, sizeof(carray));
return atof(carray);
}

void setup(){
pinMode(led, OUTPUT);
Serial.begin(9600);
}

void loop(){
total = 100 - StrToFloat(str);
Serial.println(total);
if (total == 87.5) {
digitalWrite(led, HIGH);
}
}

Espero ter ajudado.

Abraço.

Olá. Bom dia!

Sim ajudou e muito. Usei e funcionou 100%. Fui estudar a função e estou entendendo melhor o funcionamento dos arrays/char etc.

valeu mesmo.

:)

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço