1樓:匿名使用者
型別 位元數 有效數字 數值範圍
float 32 6-7 -3.4*10(-38)~3.4*10(38)
double 64 15-16 -1.7*10(-308)~1.7*10(308)
簡單來說,float為單精度,記憶體中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且vc++6.0平臺中預設顯示是6位有效數字;double為雙精度,佔8個位元組,有效數位是16位
c++中,float double區別
2樓:為江山放棄了愛
區別:一、精度的區別
float為單精度,記憶體中佔4個位元組,有效數位是7位。
double為雙精度,佔8個位元組,有效數位是16位。
二、指數和尾數長度的區別
float指數長度為8位,尾數長度23位。
double指數長度為11位,尾數長度52位。
三、取值範圍的區別
float的取值範圍為3.4e-38~3.4e+38。
double的取值範圍為1.7e-308~1.7e+308。
四、ieee的區別
float的ieee為1,遵從的是ieee r32.24 。
double的ieee為1,但遵從的是ieee r64.53。
擴充套件資料浮點型變數:
實型變數分為兩類:單精度型和雙精度型,
其型別說明符為float 單精度說明符,double 雙精度說明符。在turbo c中單精度型佔4個位元組(32位)記憶體空間,其數值範圍為3.4e-38~3.
4e+38,只能提供七位有效數字。雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為1.7e-308~1.
7e+308,可提供16位有效數字。
實型變數說明的格式和書寫規則與整型相同。
例如: float x,y; (x,y為單精度實型量)double a,b,c; (a,b,c為雙精度實型量)實型常數不分單、雙精度,都按雙精度double型處理。
3樓:柯瑤編輯
float和double都是c++中的浮點型資料型別,三者的區別是:
1、精度
是不同的。
浮點型別是單精度浮點數,雙型別是雙精度浮點數。
2、分配儲存空間。
c++編譯器為浮點型別分配4位元組,為雙型別分配8位元組。
3、有效位的個數是不同的。
float可以提供6位有效數字,double可以提供15位有效數字。
擴充套件資料:
資料介紹
1、轉換成十進位制
它由0-9位數字和小數點組成。例如,0.0,。255.789, 0.13, 5.0, 300, -267.8230都是合法的實數。
2、指數形式
它由十進位制數字、順序碼的符號「e」或「e」以及順序碼(只能是整數,並且可以簽名)組成。
其一般形式為en(一個十進位制數,n為十進位制整數),其值為a*10, n如:2.1 e 5(等於5的2.
1 * 10),3.7依照(等於二十3.7 * 10)的力量,0.
5 e 7(等於0.5 * 10的7次方),0.5 e 7(等於0.
5 * 10的7次方),-2.8依照(等於- 2.8依照(= - 2.
8 * 10-2th權力)。
下面是不合法的實數345 e(沒有decidecimal點)7(十進位制數在e 7(e秩序象徵7)e-5(5號(5號(沒有秩序的象徵)5(這項研究的結果如下:1。no) 2.
7e(無訂單編號)。
標準c允許浮點數使用字尾。字尾「f」或「f」表示該數字是浮點數。例如,356f和356。是等價的。例2.2說明了這種情況:
void main()
void指定main不返回任何值,並且printf顯示結果的結尾
浮點變數:
實變數分為單精度變數和雙精度變數。
型別描述符是浮動單精度描述符和雙精度雙精度描述符。在turbo c中,單精度型別佔用記憶體空間4位元組(32位),其數值範圍為3.4e-38-3.
4e+38,只能提供7位有效數字。雙精度型別佔用記憶體空間8位元組(64位)。其數值範圍為1.
7e-308-1.7e+308,可提供16位有效數字。
實變數具有與整數相同的格式和編寫規則。
例如,浮動x, y;(x, y為單精度實型量)
雙a b c;(a、b、c為雙精度實型量)
實型常數按雙精度處理,不需要單精度或雙精度。
參考文獻:
4樓:楓璽
float和double都是c++中的浮點型資料型別,它們的區別:
一、精度的區別
float為單精度,記憶體中佔4個位元組,有效數位是7位。
double為雙精度,佔8個位元組,有效數位是16位。
二、指數和尾數長度的區別float指數長度為8位,尾數長度23位。
double指數長度為11位,尾數長度52位。
三、取值範圍的區別
float的取值範圍為3.4e-38~3.4e+38。
double的取值範圍為1.7e-308~1.7e+308。
四、ieee的區別
float的ieee為1,遵從的是ieee r32.24 。
double的ieee為1,但遵從的是ieee r64.53。
5樓:狼道刀
1、精度不同
float型別是單精度浮點數,double型別是雙精度浮點數。
2.分配的儲存空間
c++編譯器為floatl型別分配4位元組,而為double型別則分配8位元組。
3.擁有的有效數字位數不同
float可提供6位有效數字,而double則可以提供15位有效數字。
擴充套件資料
float和double的儲存方式:
float還是double在儲存方式上都是遵從ieee的規範的,float遵從的是ieee r32.24 ,而double 遵從的是r64.53。
r32.24和r64.53的儲存方式都是用科學計數法來儲存資料的,比如8.
25用十進位制的科學計數法表示就為:8.25*10^0 ,而120.
5可以表示為:1.205*10^2 ,。
而計算機根本不認識十進位制的資料,他只認識0,1,所以在計算機儲存中,首先要將上面的數更改為二進位制的科學計數法表示,8.25用二進位制表示可表示為1000.01,120.
5用二進位制表示為:1110110.1用二進位制的科學計數法表示1000.
01可以表示為1.0001*2^3 。
1110110.1可以表示為1.1101101*2^6 ,任何一個數都的科學計數法表示都為1.
**** 2^n, 尾數部分就可以表示為***x,第一位都是1嘛,將小數點前面的1省略,所以23bit的尾數部分,可以表示的精度卻變成了 24bit。
6樓:匿名使用者
區別1、表示的範圍區別。
(1)單精度浮點型(float )專指佔用32位的儲存空間,位元組數4,可以表示十進位制的6或7位有效數字。
(2)雙精度型(double)佔用64位的儲存空間,位元組數8,可以表示十進位制的15或16位有效數字。
2、用法區別。
(1)單精度浮點型(float ):當你需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。
(2)雙精度型(double):當你需要保持多次反覆迭代的計算的精確性時,或在操作值很大的數字時,雙精度型是最好的選擇。
3、運算速度、消耗記憶體不同。double消耗記憶體是float的兩倍,double的運算速度比float慢得多。
1、.單精度浮點型(float)和雙精度型(double)是浮點型的兩種型別。浮點數表示法利用科學計數法來表達實數(real),當計算的表示式有精度要求時被使用。
例如,計算平方根,或超出人類經驗的計算如正弦和餘弦,它們的計算結果的精度要求使用浮點型。
2、c標準規定的浮點型有float、double、long double,和整型一樣,既沒有規定每種型別佔多少位元組,也沒有規定採用哪種表示形式。大部分平臺的浮點數實現遵循ieee 754,float型通常是32位,double型通常是64位。 long double型通常是比double型精度更高的型別,但各平臺的實現有較大差異。
7樓:匿名使用者
型別 位元數 有效數字 數值範圍
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。
8樓:匿名使用者
float 單精度,doubl 雙精度。 表示的數值範圍不同。一個佔用4位元組 一個佔用8位元組, 看情況來確定它們用的方位。
c++中double和long double有什麼區別?
9樓:匿名使用者
二者均為浮點數型別,區別如下:
1 double型別為c++原始型別,所有編譯器均支援,而long double是c99規範增加的新型別,只有支援c99的編譯器才支援long double;
2 佔用大小不同,double佔8個位元組,long double根據編譯器實現不同,有佔用8,10,12位元組和16位元組四種;
在long double用8位元組實現時,long double 和double沒有其它區別。對於其它實現方式,還有以下三項區別:
1 運算速度不同,long double佔用位元組多,運算速度會慢一些;
2 精度不同,long double可以表示更大的精度;
3 表示範圍不同,long double可以表示更大範圍的浮點數。
C 中和float和double的分別
1.是取地址運演算法,比如 int a 3 int p p a 取變數a的地址賦給p,那麼p就指向了a 也可以做位運算 主要是針對二進位制 表示 按位與 運算 如果兩個數相應的二進位都是1,那麼該位的結果值也是1,否則為0 比如 0 0 0,0 1 0,1 0 0,1 1 1 關於 這個是與運算子 ...
c語言中,float型和double型變數如果不指定寬度,應
double與float的區別在於在記憶體中存放資料時佔用的記憶體不一樣,前者8位元組,後者4位元組,也就是前者儲存的小數位數比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.999999。因為c語言預設輸出小數位數都取...
請問c語言中的float和double型別有什麼區別?什麼
c語言中 單精度型 和bai雙精度型 指兩種du 型別 的 浮點數zhi 單精度型dao 即回 float 型,有效數字約10進位制答7位 雙精度型 即 double 型,有效數字約10進位制15位 所以能描述的數值精度不同。c語言 資料 用 ieee 754 國際標準。float 型 用 4 位元...