ITfeng

 

浮点数转成字符串

#include<stdio.h>
#include<stdlib.h>
char*func(double num,char str[])
{
 int i,temp,j=0;
 temp=(int)num; //先取整数部分
 while(temp)
 {
  str[j++]=temp%10+'0';
  temp/=10;
 } 
 //注意数是逆序的 ,需要转换
 for(i=0;i<j/2;i++)
 {
  temp=str[i];
  str[i]=str[j-i-1];
  str[j-i-1]=temp;
 }
 str[j++]='.';
 num-=(int)num;
 for(i=0;i<10;i++)
 {
  num=num*10;
  str[j++]=(int)num+'0';
  num-=(int)num;
 }
 while(str[--j]=='0');
 str[++j]='\0';//却掉没用的0
 return str;
}
int main()
{
 char str[100];
 double num=123.32455432;
 printf("%s\n",func(num,str));
 
}

posted on 2012-05-08 20:51  ITfeng  阅读(277)  评论(0编辑  收藏  举报

导航