/*
* 1.c
*
* Created on: 2013年10月9日
* Author: lxm2527
*/
#include <stdio.h>
#include <stdlib.h>
char *F2S(double d,char *str)
{
char str1[40];
int j = 0,k,i;
i = (int)d;//浮点数的整数部分
while(i > 0)
{
str1[j++] = i % 10 + '0';
i = i / 10;
}
for(k = 0;k < j;k++)
{
str[k] = str1[j-1-k];//被提取的整数部分正序存放到另一个数组
}
str[j++] = '.';
d = d - (int)d;//小数部分提取
for(i = 0;i < 10;i++)
{
d = d*10;
str[j++] = (int)d + '0';
d = d - (int)d;
}
while(str[--j] == '0');
str[++j] = '\0';
return str;
}
int main(int argc, char **argv)
{
double d = 365.89123;
char str[20];
char *p = F2S(d,str);
printf("%s\n",str);
printf("%s\n",p);
return 0;
}
运行结果:
365.89123
365.89123