Cdouble型別範圍為什麼那麼大

2022-09-26 03:05:33 字數 5653 閱讀 3055

1樓:香嫣然柯紅

它表示大數的代價就是損失了精度.打個比方,我有0-9這10個數,我定義數n表示5n,那麼這10個數最大能表示45,但41,42這些不是5的倍數的數就沒法精確表示了,只能在定義中把它們靠向40或者45.這就是為了擴大表示範圍而損失了表示精度.

2樓:勞英耀房冷

float和double的範圍是由指數的位數來決定的。

float的指數位有8位,而double的指數位有11位,分佈如下:

float:

1bit(符號位)

8bits(指數位)

23bits(尾數位)

double:

1bit(符號位)

11bits(指數位)

52bits(尾數位)

於是,float的指數範圍為-128~127,而double的指數範圍為-1024~1023,並且指數位是按補碼的形式來劃分的。其中負指數決定了浮點數所能表達的絕對值最小的數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

float的範圍為-2^128

~+2^127,也即-3.40e+38

~+3.40e+38;double的範圍為-2^1024~+2^1023,也即-1.79e+308~+1.79e+308。

3樓:竭縈家彤

因為它不是每個數都能表示

它是分為2大塊存放

一塊存放有效數字(包括小數點)

一塊存放

次方數這樣存放的

不是挨個存放

太精細的數字是顯示不了的

double有效數字位數一般在14-16左右

c++ double 型別範圍為什麼那麼大

4樓:匿名使用者

它表示大數的代價就是損失了精度.打個比方,我有0-9這10個數,我定義數n表示5n,那麼這10個數最大能表示45,但41,42這些不是5的倍數的數就沒法精確表示了,只能在定義中把它們靠向40或者45.這就是為了擴大表示範圍而損失了表示精度.

5樓:匿名使用者

1、因為double型別是浮點數,這種型別可以用科學記數法表示,所以表示範圍非常大。

但是,使用可浮點數的代價就是損失了精度。它把這部分精度用於指數的表示。所以double型別的優點就是資料範圍大,缺點是精度不足,大概只有15~16位有效位數。

2、浮點數型別及其數值範圍:

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

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)

6樓:

因為它不是每個數都能表示

它是分為2大塊存放

一塊存放有效數字(包括小數點)

一塊存放 次方數

這樣存放的

不是挨個存放

太精細的數字是顯示不了的

double有效數字位數一般在14-16左右

7樓:踏岸尋柳

範圍與真正範圍內數值的個數,是不一樣的。

8樓:匿名使用者

float和double的範圍是由指數的位數來決定的。

float的指數位有8位,而double的指數位有11位,分佈如下:

float:

1bit(符號位)

8bits(指數位)

23bits(尾數位)

double:

1bit(符號位)

11bits(指數位)

52bits(尾數位)

於是,float的指數範圍為-128~127,而double的指數範圍為-1024~1023,並且指數位是按補碼的形式來劃分的。其中負指數決定了浮點數所能表達的絕對值最小的數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

float的範圍為-2^128 ~ +2^127,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~ +2^1023,也即-1.

79e+308 ~ +1.79e+308。

為什麼float型表示數的範圍比double型表示的數範圍大

9樓:金色潛鳥

c/c++ 語言copy,float型 和 double 型 表示數的

範圍 定義在編譯器bai的 float.h 中。

#define dbl_max 1.7976931348623158e+308

#define dbl_min 2.2250738585072014e-308

#define flt_max 3.402823466e+38f

#define flt_min 1.175494351e-38f

顯然,du double 型 的 範圍 達 10的 308次方zhi,而 float 型 的 範圍 只有dao 10 的 38 次方。

double 型 的 範圍 遠比 float 型 的 範圍 大。

其實,道理很簡單, double 型 用 8 位元組 表示 數,float 型只有 4 位元組。

double 的資料型別範圍是多少?c++

10樓:琉璃

double 的資料型別取值範圍如下:

1、負值取值範圍為 -1.79769313486231570e+308 到 -4.94065645841246544e-324;

2、正值取值範圍為 4.94065645841246544e-324 到 1.79769313486231570e+308。

拓展資料:

c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。

c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。

11樓:南霸天

double 變數以帶符號的 ieee 64 位(8 個位元組)雙精度浮點數形式儲存,取值範圍如下:

1、負值取值範圍為 -1.79769313486231570e+308 到 -4.94065645841246544e-324;

2、正值取值範圍為 4.94065645841246544e-324 到 1.79769313486231570e+308。

12樓:逍遙公蟲

8個位元組,64位bites

正負1.7乘以10的308次方

13樓:匿名使用者

double 8位元組 取值範圍為: 1.7e-308 < |x| < 1.7e+308

精度15位

14樓:匿名使用者

1.7e-308~1.7e+308

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

15樓:匿名使用者

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。

16樓:匿名使用者

據我所知,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位元組的呢。

17樓:方小超1號

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

18樓:匿名使用者

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

19樓:匿名使用者

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

20樓:匿名使用者

gt;::max()

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

c++中怎麼對超出最大資料型別範圍的數進行處理?比如說我要求pi的很多位,可是好像普通double

21樓:匿名使用者

儲存:利用陣列,可以用char陣列一位一位地存放,記住第幾個數開始是小數點分割點即可;也可以用整型8位、16位、32位、64位為單位存放;還可以用double型存放小數,只要記住每個double型資料的小數基數即可,比如double陣列第1個元素基數是乘以10的0次方,第2個可能是乘以10的負10次方,依此類推。

計算:假設用double陣列存放pi的值,在計算到陣列精度要求時(比如10的負10次方),將資料儲存,並將剩餘的結果擴大一個基數再進行計算,並將符合精度要求的資料儲存到double陣列下一個元素。這樣保證:

每個計算在超過精度範圍時,可以通過將運算擴大(乘以10的10次方)的基礎上繼續運算,保證了運算結果不會超過基本資料的精度範圍,這樣可以一直算下去。

什麼是數值的範圍 列出的資料型別各自的範圍是多少 C語言

數值的範圍就是這個碗可以盛多少飯。資料型別各自的範圍如下 char 1 int 2 short 2 long 4 long long 8 float 6 double 10。擴充套件資料 c語言中的常量 常量有固定的數值,不能進行賦值操作,任何基本型別資料都可以是常量。整數常量 可以說任意進位制數的...

奮鬥電視劇中心碎烏托邦那建築屬於什麼型別。什麼風格

loft風格,對工廠或倉庫進行整修改為工作室和住室。20世紀40年代的時候,loft這種居住生活方式首次在美國紐約出現。當時,藝術家與設計師們利用廢棄的工業廠房,從中分隔出居住 工作 社交 娛樂 收藏等各種空間,在浩大的廠房裡,他們構造各種生活方式,創作行為藝術。loft的定義要素主要包括 高大而開...

PDF旋轉頁面為什麼提示無效頁面範圍

adobe acrobat pro會出現這個問題,但是如果只有一頁的pdf旋轉時選擇了只包括偶數頁就會提示這個錯誤。應該是你所使用的軟體不支援旋轉pdf檔案頁面吧,如果想要旋轉pdf檔案中的頁面,可以使用一個叫xunjiepdf編輯器的軟體開啟檔案。然後通過點選操作介面上方的文件按鈕,再在彈出的選項...