Hoje mostro como converter um numero float para string com controle de casas decimais muito útil quando se quer mostrar apenas algumas casas depois da virgula.
[sections] [section title=”Rotina para converter float para string”]

void convertFloattoSTR(float number,char qtdeCasas,unsigned char* ponteiro)
{
unsigned long valor=0;
unsigned int a=0,b=0;
unsigned char tst[16],*pont;
pont=tst;

valor = (long)(number*((unsigned int)pow(10,qtdeCasas-1))); // função pow equivale a 10^n° ou seja 10 elevado a um numero
*pont = ‘0’;
pont++;
do
{
b++;
*pont = (valor%10)+’0′;
valor/=10;
pont++;
if(++a==qtdeCasas-1)
{
*pont = ‘.’;
pont++;
b++;
}
}while(valor!=0);
if(a<=(qtdeCasas-1))
{
*pont = ‘0’;
pont++;
b++;
}
pont–;
for(a=0;a<=b;a++)
{
*ponteiro = *pont;
ponteiro++;
pont–;
}
*ponteiro = 0;
}

[/section] [/sections]
Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[LINGUAGEM C] Rotina para converter float para string
Tags:             

Deixe uma resposta

%d blogueiros gostam disto: