数据转换

char* float2str(float 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;
}
/***
* slope: float类型的数值
* *str: 数组首地址
* dNum: 小数点的位数
*/
char* float2str(float slope, char *str, int dNum)
{
    int temp, i, j;
    // 1. 判断是否为负数
    if(slope >= 0){
        buffer[0] = '+';
    }else{
        buffer[0] = '-';
    }
    // 2. 提取整数部分
    temp = (int) (slope);
    for(i=0;temp!=0;i++)//计算整数部分的位数
        temp /= 10;
    temp = (int)slope;
    for(j=i; j>0; j--)//将整数部分转换成字符串型
    {
        buffer[j] = temp%10 + '0';
        temp /= 10;
    }
    buffer[i+1] = '.';
    // 3. 提取小数部分
    slope -=(int)slope;
    for(j = 0; j < dNum; j++)//将小数部分转换成字符串型
    {
        slope *= 10;
        buffer[i] = (int)slope+'0';
        slope -= (int)slope;
    }
    buffer[dNum] = '\0';
}