自己写的一个浮点数转换为字符串的函数,有点简陋,因为不支持科学计数法
void citoa(int num, char* result,int& end);
void dectoa(float fNum, char* result,int& end);
// 浮点数转换为字符串
void floatToString(float f)
{
int intPart = (int)f;
float decimalPart = f - intPart;
cout<<intPart<<endl;
cout<<decimalPart<<endl;
char floatString[100];
int end = 0;
if(0 != intPart)
{
citoa(intPart,floatString,end);
floatString[end] = '.';
}
dectoa(decimalPart,floatString,end);
printf(floatString);
printf("\n");
}
// 整数转换为字符串
void citoa(int num, char* result,int& end)
{
//if(0 == num)
//{
// result[0] = '0';
// end = 1;
// return;
//}
int i = 0;
// num is a negative number
if(num < 0)
{
result[i] = '-';
++i;
num *= -1;
}
while(num > 0)
{
result[i] = (num % 10) + '0';
num = num/10;
++i;
}
if('-' == result[0])
ReverseWord(result+1,result+i-1);
else
ReverseWord(result,result+i-1);
end = i;
}
// 纯小数部分转换为字符串
void dectoa(float fNum, char* result,int& end)
{
int i = 0;
if(0 == end)
{
if(fNum < 0.0f)
{
result[0] = '-';
i = 1;
fNum = fNum * (-1);
}
result[i] = '0';
result[i+1] = '.';
end = i + 1;
}
if(fNum < 0.0f)
fNum = fNum * (-1);
while(fNum > 0.0f)
{
++end;
fNum *= 10;
int singleInt = (int)fNum;
result[end] = singleInt + '0';
fNum -= singleInt;
}
++end;
result[end] = '\0';
}
2309

被折叠的 条评论
为什么被折叠?



