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?

Exibições: 221

Responder esta

Respostas a este tópico

Oi RFM, boa tarde.

tente assim:

http://pastebin.com/fgXk2nwi

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!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço