C 中,float數值型別跟double數值型別在實際應用中有什麼區別

2022-06-07 14:25:14 字數 5809 閱讀 8512

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)

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++中,上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個double(因為小數預設是double),所以要報這個warning,一般改成0.1f就沒事了。

c語言中,對於浮點型別的資料採用單精度型別(float)和雙精度型別(double)來儲存,float資料佔用32bit, double資料佔用64bit,我們在宣告一個變數float f= 2.25f的時候,是如何分配記憶體的呢?如果胡亂分配,那世界豈不是亂套了麼,其實不論是float還是double在儲存方式上都是遵從ieee的規範 的,float遵從的是ieee r32.

24 ,而double 遵從的是r64.53。

2樓:匿名使用者

float精度為7位,double精度為14位,一般建議直接用double,因為double和float的執行效率基本上一樣,而且精度較高

c++語言中 float 與double 在實際使用中的的區別

3樓:席躍

float是單精度,32位的,double是雙精度,64位的,當你用float不能夠精確表示資料的時候就用double型。。。

一般gps座標用的float型,double型主要用在精度要求極高的,比如銀行算利息之類的

程式語言c語言中 float 與 double有什麼區別,在實際應用中。

4樓:琦玉

精度不同,float是單精度,double是雙精度;在計算機中所佔記憶體不同,double在記憶體中,佔8個位元組,float佔4個位元組。

c++中,float double區別

5樓:為江山放棄了愛

區別:一、精度的區別

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

6樓:柯瑤編輯

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

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

參考文獻:

7樓:楓璽

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。

8樓:匿名使用者

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

9樓:匿名使用者

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

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。

10樓:匿名使用者

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

c++裡float和 double有什麼區別??

11樓:匿名使用者

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

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型別的長度分別為多少

在32位的機子 也就是目前很多人用的機子型別 上,float 型別是 4個位元組,double 型別是 8 個位元組。float是四個位元組,每個位元組8位,共4 8 32位 double是八個位元組,每個位元組8位,共64位 c 中float和double的區別 是這樣的,你程式裡制的小數,比如f...

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

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

excel中c列數值大於a列小於b列,c單元格為綠色,否則為

1.先把 baic列顏色全部設定 du成紅色,就在工具欄填充 zhi顏色那裡選紅色 2.條件格式dao 專新屬 建規則 用公式確定 if and c1 a1,c1 b1 true,false 格式裡面,填充,選綠色 確定 應用於 c c 確定 先把復c列顏色全部設定成紅制色,就在工具欄填充顏色那裡選...