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); }
发表评论: