1樓:匿名使用者
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。
2樓:匿名使用者
據我所知,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位元組的呢。
3樓:方小超1號
其實在vc6.0中double和long double一樣都是分配8個位元組,15位有效數字;但是在gcc中long double分配12個位元組。初學者基本上用不到long double。
4樓:匿名使用者
這個跟編譯器相關, vc6裡不用考慮它們的區別,所以一般不用細想這個。 liuyan12600 回答的比較詳細。
5樓:匿名使用者
有效數字的範圍long double的要比double的多 在c中 long double 的是18-19個 double 是15-16個
6樓:匿名使用者
gt;::max()
numeric_limits::max()numeric_limits::max()需要標頭檔案
7樓:6q號
參*** 12.我被你見,空空消逝了、暗中偷換的流年,然後危險。
c++中double和long double有什麼區別?
8樓:匿名使用者
二者均為浮點數型別,區別如下:
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可以表示更大範圍的浮點數。
9樓:起個名子真挺難
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);
10樓:o丨_丨_丨
標準只保證long double 的精度不低於double(也就是說可以一樣),具體是怎樣得取決於你的編譯器
11樓:匿名使用者
引用的意思呢就是說返回變數的地址而非變數本身。比如一樓的返回值就是一個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
12樓:胖子洲
一般來說是佔的位元組數不同,但對於現在的編譯器,比如vc,他們佔位元組數一樣,都是16
13樓:鷹弈
區別大了
從數學上說,double是實數(有範圍限
制),long是整數(有範圍限制)
實數包含整數
從系統分配位元組來說,double變數佔8個位元組,long佔4個位元組從計算機的儲存形式來說,區別就更大了,當然,樓主初學,不必瞭解那麼詳細 ,只要記住前兩點就行
c++中float、 double、 long double表示的資料範圍?
14樓:匿名使用者
numeric_limits::max()numeric_limits::max()numeric_limits::max()需要標頭檔案
15樓:藍色的仙道_彰
c++標準:
float:佔四個位元組,3.4*10(-38)---3.4*10(38);
double:佔八個位元組, 1.7*10(-308)---1.7*10(308);
longdouble型的範圍和double都是八個位元組,範圍相同。
上面的括號表示冪運算。
c語言中 float double long double 型別資料的數值範圍是怎麼計算的?
16樓:匿名使用者
按位數和符號位 來定的。。。。。。。。。。。
17樓:天天向上知識店鋪
float 和 double 如下:
long double則是由於編譯器不同而不同,ansi c標準規定了double變數儲存為 ieee 64 位(8 個位元組)浮點數
回值,但並未答規定long double的確切精度。所以對於不同平臺可能有不同的實現。有的是8位元組,有的是10位元組,有的是12位元組或16位元組。
規定long double的精度不少於double的精度,就像int和long int一樣。關於具體的編譯器的情況,可以列印 sizeof(long double)得知。
C 中5c 10c什麼意思,c 中 5c 10c什麼意思
問題分析 5c表示輸出一個字元,這個字元要佔用5個字元的空間,不足部分在前面補上空格。也就是輸出4個空格和這個字元。同樣 10c輸出9個空格和一個字元。問題擴充套件 代表意思有 兩種意思 1 格式化字串輸出 2 整數取餘 例項如下 1 目前printf支援以下格式的輸出,例如 printf c a ...
C 中的用法,C 中new的用法
除了樓上說的 還有 引用 和 取地址 的含義int a int b a 上述兩行語句執行完之後,a b表示同一個變數,對其中一個的操作相當於對另一個的操作 int a int b a 則b中儲存的是a的地址。對 b 的任何操作相當於對a的操作。表示引用,就是物件的另一個名字,例如 int i 10 ...
C 中pow函式,C 中pow(x,y)函式怎麼用?最好給舉個例子
2型別是整型,0.5屬於浮點數,而你的函式宣告裡面第一個引數是浮點數,第二個引數是整型的,int轉float double可以隱式轉換,編譯器允許這種轉換,但是float double不能隱式轉換成int,這樣可能會造成資料丟失,編譯器不允許,除非你強制轉換 在vc 6.0中原型為double po...