浮点数据转换字符函数,请大侠帮我修改!
声明:偶是一个菜鸟!
请帮我把下面这个函数完善一下。
意图说明:原先的函数是把LONG转换为STR,我现在需要把float转换为STR,因为我需要带2位小数。
请基于这个函数修改,谢谢!
还有,最好麻烦注释一下,如这句*tmp++ = tmpNum % 10 + '0'是啥意思。
万分感谢!
// char * LongToStr(long num, char * buf, int radix)
// purpose:
// Long integer number charge to string.
//
// num -- Long integer number
// buf -- the buffer of char of charged long integer number
// radix -- the radix(2, 8, 10, 16)
//
// return
// return received buffer pointer.
//
char * LongToStr(long num, char * buf, int radix)
//char * LongToStr(float num, char * buf, int radix) 这是我加的,运行下面语句出错。
{
char * tmp, * tmp1;
long tmpNum; //LONG
char str[33];
tmpNum = (num < 0 ? -num : num);
tmp = str;
switch( radix )
{
case 2:
break;
case 8:
break;
case 16:
break;
default: //十进制
do{
*tmp++ = tmpNum % 10 + '0'; //这里出错啦
tmpNum /= 10;
}while( tmpNum );
*tmp = 0;
break;
}
tmp1 = buf;
if( num < 0 ) *tmp1++ = '-'; //负号
while( tmp != str )
{
*tmp1++ = *(--tmp);
}
*tmp1 = 0;
return buf;
}