浮点数转成字符串
#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));
}
浙公网安备 33010602011771号