C 语言 double 转 字符串(char 数组)
2023-03-15
还是说几句,在网上查资料才发现这玩意儿网上好像有点缺乏,而且大部分居然还要收费滴,有点抽象,有点离谱,所以我写了一个我感觉使用起来还是比较方便的!
#include "stdio.h"
//获取字符串长度
int strlen(char * ret)
{
int i = 0;
while (true)
{
if (*(ret + i) == '\0')
{
break;
}
else
{
i += 1;
}
}
return i;
}
void doubletochar(char *strdouble,double result)
{
//char strdouble[99];
double ret = result;
int zheng = (int)result, zweishu = 0, wei = 10, xweishu = 0;
while (true)
{
int yushu = zheng % wei;
if (yushu == zheng)
{
zweishu++;
break;
}
else
{
zweishu++;
wei = wei * 10;
}
}
for (int i = 0; i < zweishu; i++)
{
int yushu = zheng % 10;
zheng = zheng / 10;
strdouble[zweishu - i - 1] = yushu + '0';
}
strdouble[zweishu] = '.';
while (true)
{
if ((int)ret != ret)
{
ret = ret * 10;
xweishu++;
}
else
break;
}
for (int i = 0; i < xweishu; i++)
{
int yushu = (int)ret % 10;
ret = ret / 10;
strdouble[zweishu + xweishu - i] = yushu + '0';
}
strdouble[zweishu + xweishu + 1] = '\0';
for (int i = 0; i < strlen(strdouble); i++)
{
//putchar(strdouble[i]);
}
}
int main()
{
char demo[99];
doubletochar(demo, 18.369);
printf("%s", demo);
while (true);
}
发表评论: