LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: LuísR.A. em 16 de Agosto de 2013, 00:31

Título: Float para String
Enviado por: LuísR.A. em 16 de Agosto de 2013, 00:31
Estou a tentar converter um "float" para um "string".

Tento usar String(); mas apenas aceita inteiros.
Posso fazer int=float, mas assim perco as casas decimais.

Alguem sabe como posso resolver isto?
Título: Re: Float para String
Enviado por: MMM em 16 de Agosto de 2013, 01:37
E se multiplicar por 10^n, sendo n o numero de casas decimais que quer manter antes de guardar na string.

Quando quiser tirar da string faz o inverso, pegando no float e divide por 10^n.
Título: Re: Float para String
Enviado por: LuísR.A. em 16 de Agosto de 2013, 01:42
E se multiplicar por 10^n, sendo n o numero de casas decimais que quer manter antes de guardar na string.

Quando quiser tirar da string faz o inverso, pegando no float e divide por 10^n.

Já fiz isso mas é um bocado dificil ler os valores. Para alem de serem grandes não se tem noção onde está o algarismo das unidades
Título: Re: Float para String
Enviado por: MMM em 16 de Agosto de 2013, 01:51
Está a imprimir num display? Pode introduzir manualmente a virgula fazendo o print assim:

 "%d,%d", var/10^n, var%10^n
Título: Re: Float para String
Enviado por: Njay em 16 de Agosto de 2013, 02:36
Vê lá se existe esta função: ftoa
Ou ainda: snprintf
Título: Re: Float para String
Enviado por: senso em 16 de Agosto de 2013, 03:33
Para formatação de numeros das duas uma, ou uso um sprintf, ou então um ftoa, tal como o Njay já disse.