C语言浮点数转字符串实现函数

C语言浮点数转字符串可用库函数sprintf,此处为编写的简单函数。

小数部分最多显示六位。

pOut:输出字符串缓冲区

f:浮点数值

isize:输出字符串缓冲区大小

char * Funftoa(char *pOut,float f,unsigned char isize)

{

int i,iTmpNum,iTmpFraction;
uint32_t iTmpT=1;
unsigned char k=0;

if(pOut==NULL)return NULL;
memset(pOut,0,isize);

//处理符号
if(f<0)
{
  f=-f;
  pOut[k]='-';
  k++;
}
iTmpNum=f;
f=(f-iTmpNum)*1000000;
iTmpFraction=f;

//整数部分
i=iTmpNum;
while(i>10)
{
  i/=10;
  iTmpT*=10;
}
while(iTmpT>0)
{
  if(k<isize)
   pOut[k]=iTmpNum/iTmpT+'0';
  k++;
  iTmpNum%=iTmpT;
  iTmpT/=10;
}

//小数部分
if(iTmpFraction>0)
{
  iTmpT=100000;
  if(k<isize)
    pOut[k]='.';
   k++;
  while(iTmpT>0&&iTmpFraction>0)
  {
    if(k<isize)
    pOut[k]=iTmpFraction/iTmpT+'0';
    k++;
    iTmpFraction%=iTmpT;
    iTmpT/=10;
  }
}

//最后一位补字符串结束标志
if(k<isize)pOut[k]=0;
else pOut[isize-1]=0;
return pOut;

}

 

posted @ 2022-02-11 15:01  webccaa  阅读(766)  评论(0编辑  收藏  举报