C 中float和double的區別

2021-04-20 14:01:36 字數 5518 閱讀 3595

1樓:

是這樣的, 你程式裡製的小數, 比如float b[6]=;這一bai句.

所有已知的du小數常量, 編譯zhi器編譯的時候, 都預設把它dao處理為double型的. 所以最好用double. 當然不是必須, 用float也行.

舉個例,float a=7.3*1.0/3;

得到的結果為,將表示式右邊按照double型資料計算得到的結果, 再轉化成float型的值.

而並不是, 將表示式右邊直接按float型計算得到的結果值.

由於這一點細微的差別,對於某些極特殊的值可能結果略有不同.

2樓:_槑

兩者區別主要在分配bai儲存空間和描述浮du點數所擁有的zhi有效數字dao位數。通常情況下:

1,大專

多數情況下,編譯器為屬float分配4位元組,而為double則分配8位元組。

2,float可提供6位有效數字,而double則可以提供15位有效數字。

所以在應用是需要注意定義資料的精度要求。

3樓:匿名使用者

你應該來是用vc6編譯

的吧?我用源g++ 4.6.3編譯,無bai警告du,結果正zhi

確。vc6編譯出警告是因為,vc6的編譯器dao預設把小數當作const double型別,8個位元組,而float是4個位元組,當然會出警告。想要不出警告,1是改陣列型別,2是在每個數字後面加乙個「f」,告訴編譯器把這個數字當作float型別處理

4樓:匿名使用者

你這個g是什麼型別的?可能跟它有關係。

5樓:

因為浮點常量如3.1;3.1f是double型別

不換也是可以,換了不會警告了。

6樓:匿名使用者

乙個是浮點型,乙個是雙精度

c++裡float和 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)

簡單來說,float為單精度,記憶體中佔4個位元組,有效數字是7位(因為有正負,所以不是8位),在我的電腦且vc++6.0平台中預設顯示是6位有效數字;double為雙精度,佔8個位元組,有效數字是16位

c++中,float double區別

8樓:為江山放棄了愛

區別:一、精度的區別

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型處理。

9樓:柯瑤編輯

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為雙精度實型量)

實型常數按雙精度處理,不需要單精度或雙精度。

參考文獻:

10樓:楓璽

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。

11樓:狼道刀

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。

12樓:匿名使用者

區別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型精度更高的型別,但各平台的實現有較大差異。

13樓:匿名使用者

float 單精度,doubl 雙精度。 表示的數值範圍不同。乙個佔用4位元組 乙個佔用8位元組, 看情況來確定它們用的方位。

java中float和double的取值範圍該怎樣理解

基本型別float佔4個位元組,二進位制位數有32位,取值範圍為 3.40282346638528860e 38 1.40129846432481707e 45 1.40129846432481707e 45 3.40282346638528860e 38 基本型別double佔8個位元組,二進位制...

關於c中double轉int的問題,為什麼會少

用math下面的函式 double d1 1.1d int i1f int math.floor d1 1int i1c int math.ceiling d1 2 int i1r int math.round d1 1double d9 1.9d int i9f int math.floor d9...

C語言中double和int型的資料之間可相互賦值

可以。如 double a 1.2 int b b a b 1 取整了 int a 1 double b b a b 1.00000 1 double 雙精度浮點型 是計算機使用的一種資料型別。比起單精度浮點數 float double 雙精度浮點數 使用 64 位 8位元組 來儲存乙個浮點數。2 ...