将浮点型数据转换为字符串
/*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小时内删除。
发表评论