請問double和float都是小數型,但有什麼區別,謝謝

時間 2022-06-09 23:50:02

1樓:匿名使用者

c/c++的浮點資料型別 float 和 doublefloat大小為4位元組,即32位,記憶體中的儲存方式如下:

符號位(1 bit)

指數(8 bit)

尾數(23 bit)

float 有效數字是6--7位

取值範圍

-3.4*10(-38)~3.4*10(38)double大小為8位元組,即64位,記憶體佈局如下:

符號位(1 bit)

指數(11 bit)

尾數(52 bit)

double有效數字是15--16位

取值範圍

-1.7*10(-308)~1.7*10(308)符號位決定浮點數的正負,0正1負。

指數和尾數均從浮點數的二進位制科學計數形式中獲取。

2樓:

float 是 單精度浮點型, 佔 16 位

double 是 雙精度浮點型, 佔 32 位

換句話說就是 double 的精度比 float 高

3樓:匿名使用者

double佔64位,float佔32位

而double的精度比float的精度高

4樓:匿名使用者

表示範圍double要大

5樓:匿名使用者

看來都說出來了 double 要長些

double和float什麼區別

6樓:匿名使用者

兩者的主要區別如下:

1、在記憶體中佔

有的位元組數不同:

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

2、有效數字位數不同:

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

3、數值取值範圍:

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

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

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

7樓:七禾之葉

對程式設計人員來說,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 之間的範圍。

參考資料

8樓:駒藹赤悅愷

型別位元數

有效數字

數值範圍

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。

9樓:淚流雲

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

10樓:匿名使用者

using double=system.double;

[1]區別一

double要有using system;

或system.double

後才能用

[2]區別二

double是保留字,double不是.

[3]區別三

double是cts型別

double是c#型別

綜上所述,

只有語法上的區別,

沒有內容上的區別.

11樓:寵魅

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

12樓:匿名使用者

二者都是浮點型的

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

double有8個位元組

float只有4個位元組

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

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

13樓:匿名使用者

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

14樓:匿名使用者

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

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

double 和float區別?

15樓:mei_陳先生

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

16樓:漢能祿晟

取值範圍是第二個,但是很多教材寫的是第一種,因為浮點數的精度還應該包括能表示的絕對值最小的數,理解意思就行了

17樓:匿名使用者

float:佔4個位元組

double: 佔8個位元組

double 和 float 的區別是double精度高,有效數字16位,float精度7位(可提供7位或8位有效數字,構成包括符號位、指數位和尾數位)。

但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,能用單精度時不要用雙精度。

18樓:小猥瑣之葉子

double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,在不確定的情況下還是儘量用double以保持正確性.

19樓:匿名使用者

樓上回答基本正確,能用單精度(float 32bit)就儘量不用雙精度(double 64bit),因為單精度省記憶體

區別就在於取值範圍和精度不同

20樓:匿名使用者

float能有6-7有效數字

double能有15位

比如π=3.1415926535897932384626433832795

float 3.141593 如果顯示的更多的話就是不一定的數值了double 3.14159265358979

C語言中實型資料,float和double,可以指哪些數?什麼是實型

大 實型資料分為實型常量和實型變數,在計算機中的實型數以浮點形式表示,實型常量既可以是實數,也可以是浮點數。如3.14159等。實型變數分為單精度型 float 雙精度型 double 和長雙精度型 long double 實型可以說是實數。 float和doule指的數一樣 只不過進度不同 dou...

在c語言中float和double有什麼區別

一個是單精度型別,一個是雙精度型別,有效數字和自動轉化等方面上都有區別 float是浮點型 32位 輸入用 f double是雙精度實型 64位 輸入用 lf float是浮點型 double是雙精度實型 與子如初見 double float都是浮點型。double 雙精度型 比float 單精度型...

String和Double的轉換

double.valueof x meter qzdghl double a1 double.parsedouble a string b request.getparameter qprice double b1 double.parsedouble b string c request.getp...