百度上的一个方法,你可以参考下
#include <stdio.h>
void main()
{
//存储可能用到的字符
char dictionary[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
//转换后存储在字符数组中
char str[8];
//临时字符数组空间
char tmp_array[8];
//输入的浮点数
float f_num = 0.0;
//浮点数临时变量
float f_num_tmp = 0.0;
//浮点数整数部分
int int_tmp;
//小数点后的数
int tmp;
//标志位
int i = 0, j = 0;
//统计字符数
int count = 0;
//输入数字
scanf("%f",&f_num);
//分离出整数部分
int_tmp = f_num;
//将整数部分按倒序存入tmp_array
while(int_tmp)
{
tmp = int_tmp%10;
tmp_array[count] = dictionary[tmp];
int_tmp = int_tmp/10;
count++;
}
//重新记录int_tmp的值
int_tmp = f_num;
j = count-1;
//按正序将整数部分存入
for(i=0;i!=count;i++)
{
str[i] = tmp_array[j];
j--;
}
//存入小数点
str[i] = '.';
count++;
f_num_tmp = ( f_num - int_tmp)*10;
//存入小数部分
while((int)f_num_tmp)
{
tmp = f_num_tmp;
str[count] = dictionary[tmp];
f_num_tmp = (f_num_tmp-tmp)*10;
count++;
if(count==8){
str[7] = '\0';
break;
}
}
for(i = 0;i!=8;i++)
{
printf("%c",str[i]);
}
}