把如下函数加入到你的 代码中:
void gcvt_xx(double change_num,int precision,char *change_array)
以下是测试:
#include
void gcvt_xx(double change_num,int precision,char *change_array)
{
char p[50]="",p1[50]="",k=0;
char i=0,b=0;
double z;
unsigned long y;
if(change_num<0) //判断是否为负数
{
p[k]='-';
change_num=0-change_num;
k++;
}
y=(unsigned long)change_num;
z=change_num-y;
if(y) //反序整数部分p1[]
{
while(y)
{
p1[b]=y%10+0x30;
y/=10;
b++;
}
}
else
p1[0]=0+0x30;
b=strlen(p1); //正序整数部分到p[]
for(i=0;i
for(i=0;i<50;i++)
p1[i]=0;
k=0;
i=0;
p1[k]='.'; //加小数点
k++;
while(i!=precision+1) //正序小数部分p1[]
{
z=z*10;
y=(int)(z);
z-=y;
p1[k]=y+0x30;
k++;
i++;
}
p1[strlen(p1)-1]='\0';
strcat(p,p1);
strcat(change_array,p);
return ;
}
void main()
{
double a=-1234.56734535;
char bb[20]=""; //必须为空
gcvt_xx(a,7,bb);
puts(bb);
}