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;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM