溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言怎么實(shí)現(xiàn)將double/float轉(zhuǎn)為字符串

發(fā)布時(shí)間:2021-12-10 16:48:41 來(lái)源:億速云 閱讀:449 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“C語(yǔ)言怎么實(shí)現(xiàn)將double/float轉(zhuǎn)為字符串”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“C語(yǔ)言怎么實(shí)現(xiàn)將double/float轉(zhuǎn)為字符串”吧!

將double/float轉(zhuǎn)為字符串(帶自定義精度)

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>

簡(jiǎn)單用法

double d = 3.1415926;
char dstr[20];
sprintf(dstr,"%.2lf",d);//將d 保留2位小數(shù)賦值給dstr

float和double精度問(wèn)題

double和float的區(qū)別

是double精度高,有效數(shù)字16位,float精度7位。但double消耗內(nèi)存是float的兩倍,double的運(yùn)算速度比f(wàn)loat慢得多,C語(yǔ)言中數(shù)學(xué)函數(shù)名稱double 和 float不同,不要寫錯(cuò),能用單精度時(shí)不要用雙精度(以省內(nèi)存,加快運(yùn)算速度)。

float和double的精度

是由尾數(shù)的位數(shù)來(lái)決定的。浮點(diǎn)數(shù)在內(nèi)存中是按科學(xué)計(jì)數(shù)法來(lái)存儲(chǔ)的,其整數(shù)部分始終是一個(gè)隱含著的“1”,由于它是不變的,故不能對(duì)精度造成影響。

  • float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數(shù)字,但絕對(duì)能保證的為6位,也即float的精度為6~7位有效數(shù)字;

  • double:2^52 = 4503599627370496,一共16位,同理,double的精度為15~16位。

到此,相信大家對(duì)“C語(yǔ)言怎么實(shí)現(xiàn)將double/float轉(zhuǎn)為字符串”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI