将浮点型数据转换为字符串
/*ftostr========================================= /*
// 函数名:ftostr
// 输入参数:fNum_待转换数字,str[]_存放字符串,dotsize_浮点小数后边位数
// 描述:将浮点型数据转换为字符串
// 返回值:字符串大小 */
//===================================================================================
int ftostr(float fNum,char str[],int dotsize)
{  // 定义变量
    int iSize=0;//记录字符串长度的数
    int n=0;//用作循环的临时变量
    char *p=str;//做换向时用的指针
    char *s=str;//做换向时用的指针
    char isnegative=0;//负数标志
    unsigned long int i_predot;//小数点前的数
    unsigned long int i_afterdot;//小数点后的数
    float f_afterdot;//实数型的小数部分
    //判断是否为负数
    if(fNum<0)
    {  isnegative=1;//设置负数标志
    fNum=0-fNum;//将负数变为正数
    }
    i_predot=(unsigned long int)fNum;//将小数点之前的数变为整数
    f_afterdot=fNum-i_predot;//单独取出小数点之后的数
    //根据设定的要保存的小数点后的位数,将小数点后相应的位数变到小数点之前
    for(n=dotsize;n>0;n--)
    {
        f_afterdot=f_afterdot*10;
    }
    i_afterdot=(unsigned long int)f_afterdot;//将小数点后相应位数的数字变为整数  //先将小数点后的数转换为字符串
    n=dotsize;
    while(i_afterdot>0|n>0)
    {字符串是什么型
        n--;
    str[iSize++]=i_afterdot%10+'0';//对10取余并变为ASCII码
    i_afterdot=i_afterdot/10;//对10取商
    }
    str[iSize++] ='.';//加上小数点      //处理小数点前为0的情况。
    if(i_predot==0)    str[iSize++]='0';  //再将小数点前的数转换为字符串
    while(i_predot>0)
    {
        str[iSize++]=i_predot%10+'0';//对10取余并变为ASCII码
        i_predot=i_predot/10;//对10取商
    }
if(isnegative==1)    str[iSize++]='-';//如果是负数,则在最后加上负号
str[iSize] ='\0';//加上字符串结束标志
p=str+iSize-1;//将P指针指向字符串结束标志之前
for(;p-s>0;p--,s++)//将字符串中存储的数调头
    {
    *s^=*p;
    *p^=*s;
    *s^=*p;
    }
    // 返回指针字符串大小    return iSize;
}  //==============================End

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。