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...