C中「float」與「double」的區別是什麼

時間 2022-03-05 13:50:22

1樓:匿名使用者

主要是範圍不一樣,也就是精度不一樣。精度過大,運算時間就長。所以能用float,就不用double,如果數值不多的話,就無所謂了,用哪個都行。

型別 位元數 有效數字 數值範圍

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位。

2樓:書香學程式設計

vue實踐-css樣式position/display/float屬性對比使用

c#float和double的區別

3樓:華燈愛月

c#中單精度浮點數(float)與雙精度浮點數(double)的區別如下:

(1)在記憶體中佔有的位元組數不同

單精度浮點數在機內佔4個位元組

雙精度浮點數在機內佔8個位元組

(2)有效數字位數不同

單精度浮點數有效數字8位

雙精度浮點數有效數字16位

(3)所能表示數的範圍不同

單精度浮點的表示範圍:-3.40e+38 ~ +3.

40e+38雙精度浮點的表示範圍:-1.79e+308 ~ +1.

79e+308(4)在程式中處理速度不同一般來說,cpu處理單精度浮點數的速度比處理雙精度浮點數快

double和float什麼區別

4樓:匿名使用者

兩者的主要區別如下:

1、在記憶體中佔

有的位元組數不同:

單精度浮點數在機記憶體佔4個位元組,雙精度浮點數在機記憶體佔8個位元組。

2、有效數字位數不同:

單精度浮點數有效數字8位,雙精度浮點數有效數字16位。

3、數值取值範圍:

單精度浮點數的表示範圍: -3.40e+38~3.40e+38,雙精度浮點數的表示範圍: -1.79e+ 308~-1.79e+308。

4、在程中處理速度不同:

一般來說, cpu處理單精度浮點數的速度比處理雙精度浮點數快,如果不宣告,預設小數為double型別,所以如果要用float的話,必須進行強轉。

5樓:七禾之葉

對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

擴充套件資料

double(雙精度浮點型)是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,負值取值範圍為 -1.

7976e+308 到 -4.94065645841246544e-324,正值取值範圍為 4.94065645841246544e-324 到 1.

797693e+308

浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

尾數表示一個介於 1.0 和 2.0 之間的數。

由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在 -3.4e+38 和 3.

4e+38 之間的範圍。

參考資料

6樓:駒藹赤悅愷

型別位元數

有效數字

數值範圍

float

326-7

-3.4*10(-38)~3.4*10(38)double

6415-16

-1.7*10(-308)~1.7*10(308)long

double

12818-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。

7樓:淚流雲

1. 範圍

float和double的範圍是由指數的位數來決定的。

float的指數位有8位,而double的指數位有11位,分佈如下:

float:

1bit(符號位) 8bits(指數位) 23bits(尾數位)

double:

1bit(符號位) 11bits(指數位) 52bits(尾數位)

於是,float的指數範圍為-127~+128,而double的指數範圍為-1023~+1024,並且指數位是按補碼的形式來劃分的。

其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

float的範圍為-2^128 ~ +2^128,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~ +2^1024,也即-1.

79e+308 ~ +1.79e+308。

2. 精度

float和double的精度是由尾數的位數來決定的。浮點數在記憶體中是按科學計數法來儲存的,其整數部分始終是一個隱含著的「1」,由於它是不變的,故不能對精度造成影響。

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

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

8樓:匿名使用者

using double=system.double;

[1]區別一

double要有using system;

或system.double

後才能用

[2]區別二

double是保留字,double不是.

[3]區別三

double是cts型別

double是c#型別

綜上所述,

只有語法上的區別,

沒有內容上的區別.

9樓:寵魅

不同的變數型別肯定不一樣

10樓:匿名使用者

二者都是浮點型的

但是來年各個的精度和範圍不一樣罷了

double有8個位元組

float只有4個位元組

double表示的範圍比float大 而且 一般在程式裡面都用double

錯誤少 而double在精度運算時 會出現錯誤 有誤差

11樓:匿名使用者

double有8個位元組,float只有4個位元組,所以double表示的範圍比float大

12樓:匿名使用者

double 是長整型。具體要看你的執行環境將整型定義成n位,那麼double 就是 2n位,也就是說比整型可以多存2^n倍的數。

float 是浮點型,就是帶小數點的數字的運算

float 和 double 的區別是什麼?

13樓:重慶新華電腦學校

float 最多可以儲存 8 位的十進位制數,並在記憶體中佔 4 位元組。double 最可可以儲存 16 位的十進位制數,並在記憶體中佔 8 位元組。

14樓:匿名使用者

float 英 /fləʊt/ v.漂移;發行(**)

double 英 /ˈdʌbl/ adj.兩倍的;成對的

15樓:七禾之葉

對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

擴充套件資料

double(雙精度浮點型)是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,負值取值範圍為 -1.

7976e+308 到 -4.94065645841246544e-324,正值取值範圍為 4.94065645841246544e-324 到 1.

797693e+308

浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

尾數表示一個介於 1.0 和 2.0 之間的數。

由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在 -3.4e+38 和 3.

4e+38 之間的範圍。

參考資料

c#中decimal,double和float的區別

16樓:書香學程式設計

vue實踐-css樣式position/display/float屬性對比使用

17樓:小唯殿

float 單精度浮點 32bit,

double 雙精度浮點64bit,

decimal是高精度 128bit,浮點型。

float double 是 基本型別(primitive type),decimal不是。

float 有效數字7位,範圍 ±1.5 × 10e−45 to ±3.4 × 10e38

double 有效數字15/16 位,範圍 ±5.0 × 10 e−324 to ±1.7 × 10e308

decimal 有效數字 28/29 位,範圍 ±1.0 × 10e−28 to ±7.9 × 10e28

( e -- 下接幾次方)

decimal的有效位數很大,達到了28位,但是表示的資料範圍卻比float和double型別小。

使用的時候會對計算時的效能有影響。

常數寫法:

float f = 12.3f; (帶f)

double x=12.3; (不帶就是double)

decimal d = 12.30m; (帶m)

浮點數運算會有精度損失問題,有精度損失時程式不會報告,要程式設計師自己注意。

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

賀金蘭陽靜 float一般用於平常的小數,但double由於有效位數和指數範圍都比效廣所以一般用來表示比較精確的小數或者比較大的數 無法用long來表示的 如 1.121324328947893275973249,幾百億上千億等等 允秋芹敏姬 double的位數是float的2倍,float16位,...

c 中float和double的區別以及浮點型指的是什麼啊

是這樣的,你程式裡的小數,比如float b 6 這一句.所有已知的小數常量,編譯器編譯的時候,都預設把它處理為double型的.所以最好用double.當然不是必須,用float也行.舉個例,float a 7.3 1.0 3 得到的結果為,將表示式右邊按照double型資料計算得到的結果,再轉化...

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

平常是沒有區別的,float是單精度浮點數,double是雙精度的,區別就是double型別比float型別克表示的資料範圍更大,當你的資料精度要求很高的時候,float型別就不好用了,應該用double型別。在具體程式設計的時候,用法上沒什麼區別的。float是單精度,double是雙精度,區別在...