c語言中float和double有什么區別用法

2023-01-25 13:15:31 字數 6037 閱讀 2835

1樓:匿名使用者

c語言中,float和double都屬於浮點數。區別在於:double所表示的範圍,整數部分範圍大於float,小數部分,精度也高於float。

舉個例子:圓周率3.1415926535 這個數字,如果用float來表示,最多隻能精確到小數點後面的6位。

而double大約能精確到小數點後面的15位左右。具體精確到幾位,跟所用的編譯器有關,但是各個編輯器編譯器之間,也是相差不大的。

至於整數部分,float表示的整數部分的範圍,就已經夠大了,能表示到萬億級別,已經大到沒邊了。而double所表示的整數範圍,大到更沒邊了。實際開發中,除了個別高精領域,基本上,使用float就足夠了。

2樓:

型別 位元數 有效數字 數值範圍 float 32 6-7 -3.4*10(-38)~3.4*10(38) double 64 15-16 -1.

7*10(-308)~1.7*10(308) long double 128 18-19 -1.2*10(-4932)~1.

2*10(4932)簡單來說,float為單精度,記憶體中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且vc++6.0平臺中預設顯示是6位有效數字;double為雙精度,佔8個位元組,有效數位是16位,但在我的電腦且vc++6.0平臺中預設顯示同樣是6位有效數字(見我的double_float檔案) 還有,有個例子:

在c和c++中,如下賦值語句float a=0.1;編譯器報錯:warning c4305:

'initializing' : truncation from 'const double ' to 'float '原因:在c/c++中(也不知道是不是就在vc++中這樣),上述語句等號右邊0.

1,我們以為它是個float,但是編譯器卻把它認為是個double(因為小數預設是double),所以要報這個warning,一般改成0.1f就沒事了。通常的做法,經常使用double,而不喜歡使用float。

3樓:匿名使用者

float為單精度,佔4位元組(32位)的記憶體空間,它的數值有效範圍是-10的38次方到10的38次方,只表示7位有效數字。而double為雙精度,8位元組,正負10的308次方之間,能精確到16位。這應該就是他們的的最基本的區別吧。。。

中國物聯網校企聯盟技術部。

4樓:布布影視剪輯

精度不一樣,一個是雙精度型別一個是單精度型別,就是小數點位數不一樣

5樓:小忍and奏

float=4個char double=16個char

c語言中float和double的區別!

6樓:隨便什麼名啦啦

區別:1、精度不一樣,float是單精度,double是雙精度;

2、表示小數的範圍不一樣,double能表示的範圍比float大;

3、double在記憶體中,佔8個位元組,float在記憶體中,佔4個位元組。

float:浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。

浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進位制指數和一個 23 位尾數。由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在 -3.

4e+38 ~ 3.4e+38 之間的範圍。

double:雙精度浮點型,此資料型別與單精度資料型別(float)相似,但精確度比float高,編譯時所佔的記憶體空間依不同的編譯器而有所不同,是double float資料型別,c/c++中表示實型變數的一種變數型別。

7樓:艾素延可可

double與float的區別在於在

記憶體中存放資料時佔用的記憶體不一樣,前者8

位元組,後者4位元組,也就是前者儲存的小數

位數比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.

999999,如果按照double可能為1.999999,這是為什麼,因為c語言預設輸出小數位數都取6位,這時候看起來沒有區別,但是如果你進行格式控制,比如使用%.10,即小數保留10位,float輸出結果為1.

9999990000,而double輸出結果則為1.9999996666。

8樓:陰叡多尋芹

單精度浮點數在機內佔4個位元組,用32位二進位制描述。

雙精度浮點數在機內佔8個位元組,用64位二進位制描述。

對程式設計人員來說,double

和float的區別是double精高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double

和float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

9樓:趙飆茂俊艾

數值範圍不一樣,double的範圍比float的範圍廣,還有佔位元組不一樣.而且double的精度要比float高,但是通常我們都用float,就好像我們定義整形變數是通常使用int而不是unsigned一樣。為的是讓計算機進行的計算的速度快點!

10樓:緱盛戚夜綠

沒什麼區別,就是一個精度低一點一個精度高一點,float是八位實數,double是十六位實數

11樓:斛載葛代雙

這個是它們的代表位數不一樣,長度不一樣就是他們的區別是最大的,

12樓:匿名使用者

float為單精度,佔4位元組(32位)的記憶體空間,它的數值有效範圍是-10的38次方到10的38次方,只表示7位有效數字。而double為雙精度,8位元組,正負10的308次方之間,能精確到16位。這應該就是他們的的最基本的區別吧。。。

13樓:

float的有效數字是六到七位 32位元

double的有效數字是十五到十六位 64位元

14樓:鄺筱詹綺雲

精度不同,float是單精度,double為雙精度

15樓:匿名使用者

請您花至少一個星期的時間閱讀ieee754的標準,這裡講不清楚的。

16樓:匿名使用者

totem01

回答的比較好

c語言中float和double各代表什麼含義,有什麼區別?

17樓:匿名使用者

都屬於浮點來數 也就

是小數源

但精度不同 可以bai取值的範圍dudouble要比float大所佔記憶體位數也不zhi同

32位機來講

float 佔 4位元組

dao double 佔8位元組

隨便啦 一般的精度 float夠用了 不過大部分情況都宣告為double

主要是因為常小數值 系統識別為double 這樣在計算時 免去型別轉化

減小錯誤

18樓:匿名使用者

float double在c語言當中都抄是浮點數它們之間區別就是精度不同

double 精度為最高15位 小數點後6位float 精度為最高6,7位小數點後6位所佔位元組數自然也不相同 一般環境中double佔float兩倍空間

c語言中double和float有什麼用法上的區別

19樓:匿名使用者

用法上沒有什麼區別。只是精度不同。

20樓:瀟

scanf 時還有printf時 %lf 和%f的區別

請問c語言中的float和double型別有什麼區別?什麼叫做單精度和雙精度?

21樓:碧血玉葉花

c語言中 單精度型

和bai雙精度型 指兩種du 型別 的 浮點數zhi

。單精度型dao 即回 float 型, 有效數字約10進位制答7位

雙精度型 即 double 型, 有效數字約10進位制15位

所以能描述的數值精度不同。

c語言 資料 用 ieee 754 國際標準。float 型 用 4 位元組存放,double 型 用 8 位元組存放。

single precision 2進位制: 數符1位,指數8 位,尾數 23 位

double precision 2進位制: 數符1位,指數11 位,尾數 52 位

單精數值範圍: ± ~10的-44.85次方 到 約 10的38.53次方

雙精度數值範圍 ± ~10的-323.3 次方 to 約 10的 308.3次方。

float a=1.234567;

double b=1.2345678901234;

-------------

10%3 整除取餘數,得 1。

1 用 float 和 double 表示,精度沒有區別。 a=(float)(10%3); b=(double)(10%3);

強制轉換 要帶 小括號。

22樓:某某匿名網友

sizeof(float)是4,sizeof(double)是8,精度高,有效數字多

c語言中float與double的區別是什麼

23樓:賀金蘭陽靜

float一般用於平常的小數,但double由於有效位數和指數範圍都比效廣所以一般用來表示比較精確的小數或者比較大的數(無法用long來表示的)如:1.121324328947893275973249,

幾百億上千億等等

24樓:允秋芹敏姬

double的位數是float的2倍,float16位,

double

32位,都是浮點小數,所以double所能表示的數字範圍就大得多。

25樓:系傅香拱賦

float是浮點型資料,double的精度是float的兩倍,double一般用於精度要求較高的科學計算,float用於一般的數學計算!如果對於精度要求較高的運算,採用float則會降低精度!

26樓:隆印枝蘭凰

簡單而專業的說就是float是單精度浮點。double是雙精度浮點。。這樣應該很好理解

27樓:桐軍夷婉麗

double與float的區別在於在記憶體中存放資料時佔用的記憶體不一樣,前者8位元組,後者4位元組,也就是前者儲存的小數位數比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.

999999,如果按照double可能為1.999999,這是為什麼,因為c語言預設輸出小數位數都取6位,這時候看起來沒有區別,但是如果你進行格式控制,比如使用%.10,即小數保留10位,float輸出結果為1.

9999990000,而double輸出結果則為1.9999996666。

c語言中float和double到底是什麼意思,有什麼區別,求解

28樓:溫墨徹堅亥

是兩種資料型別,float是單精度浮點型,能得到六位有效數字;double是雙精度浮點型,可以得到十五位有效數字,而且取值範圍比float的大的多

29樓:景秀花戴念

double雙精度實型變數。(也就是說:賦給這兩個變數的值將以雙精度實型格式

儲存在記憶體中)float單精度實型。

30樓:武秀雲謇夏

double比float型別的變數,儲存時,浮點數的範圍可以更大而已,

c語言float和double的區別?

31樓:無葉飛龍瀾

double

就是雙進度浮點數,float就是單精度浮點數。

就是浮點數變數。

定義一個浮點數

float

a;double

b;浮點數可以進行加減乘除等運算

a=1.5*6;等。。。c語言第一節課的內容

c語言中double和float它們儲存時分別佔據多大的記憶體空間

c標準規定 float 不少於 4個位元組,double 不少於 8個位元組。具體的你在所在平臺上用這個試試就知道了 sizeof int sizeof double sizeof float double 中文譯為雙精度浮點數,一般稱雙精度數,它在記憶體中佔用8個位元組 位 bit 的空間 flo...

c語言中a 和 a有什麼不同,c語言中 a a 和 a 的區別

作為單獨的語句,來a 與 a 並沒什源麼區別 但是b a 和b a就有區別了 baia 這個式子du的返回值是 zhia,所以daob a 相當於b a,然後a a 1 a的返回值是a 1 所以b a相當於a a 1 然後b a c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能...

c語言中整數和整型有什麼不同,C語言中,整型常量和長整型常量,有什麼區別

整型bai常量就是平 時算術上寫du的沒有小數zhi點的整數,由阿拉伯數字dao1234567890組成,整型常量包括正回數答負數和0。常量是說從程式開始到結束,數值始終保持不變的量。整型變數用變數名字表示。整型變數的數值從程式開始到結束可能變化,例如運算和輸入。類似代數裡的x,y,z.所有程式語言...