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為單精度,記...