c中double和longdouble有什麼區別

2021-05-27 06:01:39 字數 3186 閱讀 5959

1樓:匿名使用者

二者均為浮點數型別,區別如下:

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可以表示更大範圍的浮點數。

2樓:起個名子真挺難

double 8 個位元組

long double 8 個位元組

long double 和 double 的表示方式相同。 但是, long double 和 double 是不同的型別。

double d(0);

long double ld(0);

size_t t1 = sizeof(d);

size_t t2 = sizeof(ld);

3樓:o丨_丨_丨

標準只保證long double 的精度不低於double(也就是說可以一樣),具體是怎樣得取決於你的編譯器

4樓:匿名使用者

引用的意思呢就是說返回變數的地址而非變數本身。比如一樓的返回值就是一個double型別的引用,這樣子函式結束之後儲存返回值的記憶體單元不會被銷燬,保留了它的地址。

例如下面這個例子:

int a=1,b;

b=a;

b++;

這個例子裡執行完之後a為1,而b為2。

但這個例子:

int a=1;

int *b;

b=&a;//指標b獲取了a的地址

(*b)++;

a和b的值都會變為2

5樓:胖子洲

一般來說是佔的位元組數不同,但對於現在的編譯器,比如vc,他們佔位元組數一樣,都是16

6樓:鷹弈

區別大了

從數學上說,double是實數(有範圍限

制),long是整數(有範圍限制)

實數包含整數

從系統分配位元組來說,double變數佔8個位元組,long佔4個位元組從計算機的儲存形式來說,區別就更大了,當然,樓主初學,不必瞭解那麼詳細 ,只要記住前兩點就行

c++中 double、 long double表示的資料範圍一樣那他們有什麼區別

7樓:匿名使用者

double、 long double的區別在於:

在很多編譯器中,double的精度不如long double。在vc6.0中double和long double一樣都是分配8個位元組,15位有效數字;但是在gcc中long double分配12個位元組,精確度自然就比double高出四個數量級。

double,即double float資料型別,是雙精度浮點型的資料。計算機中表示實型變數的一種變數型別。此資料型別與單精度資料型別(float)相似,但精確度比float高,編譯時所佔的記憶體空間依不同的編譯器而有所不同,通常情況,單精度浮點數佔4位元組(32位)記憶體空間,其數值範圍為3.

4e-38~3.4e+38,;雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為1.7e-308~1.

7e+308。

8樓:匿名使用者

據我所知,double和long double都是ansi c標準的浮點數。但ansi c並未規定long double的確切精度。所以對於不同平臺可能有不同的實現。

有的是8位元組,有的是10位元組,有的是12位元組或更多。一般來說long double的精度要高於double, 至少相等,就像int和long int一樣。但同一平臺也可能不一樣,比如ms自己的c/c++/vc++就不一樣。

好像以前16位的vc++中long double用10位元組,而win32就改用了8位元組,和double一樣了。ms保留long double型別的庫函式是為了相容,使用者能夠繼續使用以前編寫的**。ms也說明以後編寫程式時不要再使用asinl, acosl這樣的long double型別的庫函式。

但long double的資料型別還是要保留的,它畢竟是ansi c標準規定的資料型別。說不定哪天他的c/c++會把long double弄成16位元組的呢。

9樓:方小超1號

其實在vc6.0中double和long double一樣都是分配8個位元組,15位有效數字;但是在gcc中long double分配12個位元組。初學者基本上用不到long double。

10樓:匿名使用者

這個跟編譯器相關, vc6裡不用考慮它們的區別,所以一般不用細想這個。 liuyan12600 回答的比較詳細。

11樓:匿名使用者

有效數字的範圍long double的要比double的多 在c中 long double 的是18-19個 double 是15-16個

12樓:匿名使用者

gt;::max()

numeric_limits::max()numeric_limits::max()需要標頭檔案

13樓:6q號

參*** 12.我被你見,空空消逝了、暗中偷換的流年,然後危險。

c++中double什麼意思?

14樓:匿名使用者

double是雙精度浮點類bai型du

sizeof(double)是返回

double型別的zhi位元組長度

(double*)是把daomalloc返回的void*指標轉換為double*型指

內針,然後才能賦值給

容x這個句子就是分配一個長度為n+1的double型陣列,並把陣列頭地址賦給x

15樓:匿名使用者

double 是雙精度浮點數,它佔用8個位元組記憶體。

16樓:匿名使用者

使得指標指向一個double型別的動態儲存單元。

在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型資料計算得到的結果,再轉化...

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

型別 位元數 有效數字 數值範圍 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為單精度,記...