Olá pessoal!
Preciso juntar caracteres entrados através de um keypad de 4x4 em um float único.
Exemplo: uma função faz a varredura do teclado e tem a entrada de 6 caracteres em sequencia (1,2,3,4,5,6). Outra função pega estes caracteres e transforma na float "1234,56".
Tentei desta forma mas não obtive sucesso.
float valor; // variável que armazenara o valor
unsigned int Value[6] = {1,2,3,4,5,6}; // array que armazena os caracteres separadamente
float getValue(unsigned int v[6]) // pega os valores da array e transforma em um float
{
return (v[0]*1000)+(v[1]*100)+(v[2]*10)+(v[3])+((v[4]*10)+(v[5])/100);
}
while(1) // loop infinito
{
valor = getValue(Value[6]); // armazena o valor na variável
}
Não sei se fui claro, mas alguém sabe uma maneira eficiente de fazer isso?
Tags:
Oi RFM, boa tarde.
tente assim:
testei aqui e deu certo.
Ao operar números, eles têm que ter o mesmo format.
Se calcula float, todos números tem que ser float.
E você esqueceu um grupo de parenteseis nesta parte: ((v[4]*10)+(v[5])/100);
Assim o resultado desta parte é: 50,06 e não ,56
Certo desta parte: (((v[4]*10)+(v[5]))/100);
Rui
Valeu Rui, deu certinho como sempre! Muitíssimo obrigado!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por