C語言double和float 實例分析
小數(shù)也稱實數(shù)或浮點數(shù)。例如,0.0、75.0、4.023、0.27、-937.198 都是合法的小數(shù)。這是常見的小數(shù)的表現(xiàn)形式,稱為十進(jìn)制形式。
除了十進(jìn)制形式,也可以采用指數(shù)形式,例如 7.25×102、0.0368×105、100.22×10-2 等。任何小數(shù)都可以用指數(shù)形式來表示。
C語言中的小數(shù)也有這兩種表示形式。在書寫時,十進(jìn)制形式和數(shù)學(xué)中的一樣,指數(shù)形式有所差異。
在C語言中小數(shù)的指數(shù)形式為:
aEn 或 aen
a 為尾數(shù)部分,是一個十進(jìn)制數(shù),n 為指數(shù)部分,是一個十進(jìn)制整數(shù),E或e是固定的字符,其值為 a×10n。例如:
2.1E5 = 2.1×105,其中2.1是尾數(shù),5是指數(shù)。
3.7E-2 = 3.7×10-2,其中3.7是尾數(shù),-2 是指數(shù)。
0.5E7 = 0.5×107,其中0.5是尾數(shù),7是指數(shù)。
C語言中小數(shù)的數(shù)據(jù)類型為 float 或 double:float 稱為單精度浮點數(shù),double 稱為雙精度浮點數(shù)。不像整數(shù),小數(shù)的長度始終是固定的,float 占用4個字節(jié),double 占用8個字節(jié)。
10 是固定的,不需要在內(nèi)存中體現(xiàn)出來。正負(fù)號、指數(shù)(n)、尾數(shù)(a) 是變化的,需要占用內(nèi)存空間來表示。
float、double 在內(nèi)存中的形式如下所示:
輸出 float 使用 %f 控制符,輸出 double 使用 %lf 控制符,如下所示:
#include <stdio.h> #include <stdlib.h> int main() { float a=128.101; float b=0.302f; float c=1.23002398f; double d=123; double e = 78.429; printf("a=%f \nb=%f \nc=%f \nd=%lf \ne=%lf\n", a, b, c, d, e); system("pause"); return 0; }
運行結(jié)果:
a=128.100998
b=0.302000
c=1.230024
d=123.000000
e=78.429000
對代碼的說明:
1) %f 默認(rèn)保留六位小數(shù),不足六位以 0 補齊,超過六位按四舍五入截斷。
2) 將整數(shù)賦值給 float 變量時會轉(zhuǎn)換為小數(shù)。
3) 小數(shù)默認(rèn)為 double 類型,加上后綴f才是float類型。
4) 由于內(nèi)存有限,小數(shù)的精度受限,所以輸出 a 時只能獲得一個近似數(shù)。
以上就是對C語言中double 和float 進(jìn)行的詳細(xì)分析、比較,希望能幫助學(xué)習(xí)這塊內(nèi)容的同學(xué)。
相關(guān)文章
關(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明
下面小編就為大家?guī)硪黄P(guān)于C語言多線程pthread庫的相關(guān)函數(shù)說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05VS2017+Qt5+Opencv3.4調(diào)用攝像頭拍照并存儲
本文主要介紹了VS2017+Qt5+Opencv3.4調(diào)用攝像頭拍照并存儲,實現(xiàn)了視頻,拍照,保存這三個功能。具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05C語言全面細(xì)致講解單雙精度float與double的使用方法
C語言中小數(shù)的數(shù)據(jù)類型為 float 或 double:float 稱為單精度浮點數(shù),double 稱為雙精度浮點數(shù)。不像整數(shù),小數(shù)的長度始終是固定的,float 占用4個字節(jié),double 占用8個字節(jié)2022-05-05c++ 動態(tài)內(nèi)存分配相關(guān)總結(jié)
這篇文章主要介紹了c++ 動態(tài)內(nèi)存分配相關(guān)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)和使用c++,感興趣的朋友可以了解下2021-02-02