m0_74051432 2022-11-20 22:16 采纳率: 100%
浏览 1
已结题

编写double转字符串函数:

不用库函数,自己编写一个函数,编写double转字符串函数:void DouleToStr(double d,int n,char s[]),n是小数位数(精度),支持负数;

  • 写回答

1条回答 默认 最新

  • bostonAlen 2022-11-20 23:43
    关注
    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    using namespace std;
    
    void DouleToStr(double d, int n, char s[])
    {
        n = n < 0 ? 0 : n;
        char dd[20];
        switch (n) {
        case 0:
            sprintf(dd, "%.0lf", d);
            break;
        case 1:
            sprintf(dd, "%.1lf", d);
            break;
        case 2:
            sprintf(dd, "%.2lf", d);
            break;
        case 3:
            sprintf(dd, "%.3lf", d);
            break;
        case 4:
            sprintf(dd, "%.4lf", d);
            break;
        case 5:
            sprintf(dd, "%.5lf", d);
            break;
        case 6:
            sprintf(dd, "%.6lf", d);
            break;
        case 7:
            sprintf(dd, "%.7lf", d);
            break;
        default:
            sprintf(dd, "%.8lf", d);
            break;
        }
        char *p = (char*)malloc(strlen(dd));
        strcpy(p, dd);
        strcpy(s, p);
    }
    
    int main()
    {
        double d = -3.1415926;
        char *dstr = (char*)malloc(20);;
        DouleToStr(d,8,dstr);
        cout << dstr;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月20日

悬赏问题

  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码