广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现将double/float转为字符串(带自定义精度)
  • 667
分享到

C语言实现将double/float转为字符串(带自定义精度)

2024-04-02 19:04:59 667人浏览 安东尼
摘要

目录将double/float转为字符串(带自定义精度)需用到头文件有简单用法float和double精度问题double和float的区别float和double的精度将doubl

将double/float转为字符串(带自定义精度)


char *double_to_string(double d, int decimal)
{ 
        decimal = decimal < 0 ? 0 : decimal;
        char *p;
        char dd[20];
        switch (decimal) {
        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;
        default:
                sprintf(dd, "%.6lf", d);
                break; 
        }
        p = malloc(strlen(dd));
        strcpy(p,dd);
        return p;
}

需用到头文件有


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

简单用法


double d = 3.1415926;
char dstr[20];
sprintf(dstr,"%.2lf",d);//将d 保留2位小数赋值给dstr

float和double精度问题

double和float的区别

是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。

float和double的精度

是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

  • float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
  • double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C语言实现将double/float转为字符串(带自定义精度)

本文链接: https://www.lsjlt.com/news/159615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现将double/float转为字符串(带自定义精度)
    目录将double/float转为字符串(带自定义精度)需用到头文件有简单用法float和double精度问题double和float的区别float和double的精度将doubl...
    99+
    2022-11-12
  • C语言怎么实现将double/float转为字符串
    本篇内容主要讲解“C语言怎么实现将double/float转为字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现将double/float转为字符串”吧!将double/floa...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作