網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
C語(yǔ)言實(shí)現(xiàn)將double/float?轉(zhuǎn)為字符串(帶自定義精度)_C 語(yǔ)言
作者:snow_lyGirl ? 更新時(shí)間: 2021-12-09 編程語(yǔ)言將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不同,不要寫(xiě)錯(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位。
原文鏈接:https://blog.csdn.net/qq_31028313/article/details/86520864
相關(guān)推薦
- 2022-06-30 利用Python刪除電腦中重復(fù)文件的方法_python
- 2022-07-03 TypeScript 變量聲明 —— 類型斷言
- 2022-06-21 C++深入探究二階構(gòu)造模式的原理與使用_C 語(yǔ)言
- 2023-01-13 Python?CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)教程深入講解_python
- 2022-10-31 Go語(yǔ)言面試題之select和channel的用法_Golang
- 2022-12-06 Pthread并發(fā)編程之線程基本元素和狀態(tài)的剖析_C 語(yǔ)言
- 2022-06-17 C語(yǔ)言深入講解函數(shù)參數(shù)的使用_C 語(yǔ)言
- 2022-12-15 Pycharm中配置Anaconda解釋器的完整步驟_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支