double和float的區別,java float和double的區別

2022-11-06 21:07:08 字數 5525 閱讀 1949

1樓:聽不清啊

對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)

使用時,輸入輸出時double要用%lf格式符,其它沒有區別。

#include

main()

2樓:匿名使用者

簡單來說,float為單精度,記憶體中佔4個位元組,有效數字是7位(因為有正負,所以不是8位),double為雙精度,佔8個位元組,有效數字是16位

在你的**中是可以改的,你只需要把area變數定義為double就可以了

3樓:匿名使用者

double 和 float 的區別是double常常精度更高(double有效數字最低16位,float最低7位),由於處理器內部是把浮點數全部轉成80位的擴充套件精度(long double),double和float的運算速度是完全一樣的。c語言標頭檔案中根據引數型別是double或float,函式具有不同的名稱,但是包含了兩者都適用且名稱相同的函式巨集。能用double時不要用float,以保證精度。

使用scanf輸入時,double要用%lf格式符。對於printf,二者都使用 %f 即可,float變數作為引數時會自動轉換為double變數(當然需要耗時間,因此float的處理速度實際上是慢於double的)

#include

#include

#include

int main()

j**a float和double的區別

4樓:匿名使用者

double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多

double和float什麼區別

5樓:匿名使用者

兩者的主要區別如下:

1、在記憶體中佔

有的位元組數不同:

單精度浮點數在機記憶體佔4個位元組,雙精度浮點數在機記憶體佔8個位元組。

2、有效數字位數不同:

單精度浮點數有效數字8位,雙精度浮點數有效數字16位。

3、數值取值範圍:

單精度浮點數的表示範圍: -3.40e+38~3.40e+38,雙精度浮點數的表示範圍: -1.79e+ 308~-1.79e+308。

4、在程中處理速度不同:

一般來說, cpu處理單精度浮點數的速度比處理雙精度浮點數快,如果不宣告,預設小數為double型別,所以如果要用float的話,必須進行強轉。

6樓:七禾之葉

對程式設計人員來說,double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

擴充套件資料

double(雙精度浮點型)是計算機使用的一種資料型別。比起單精度浮點數(float),double(雙精度浮點數)使用 64 位(8位元組) 來儲存乙個浮點數。 它可以表示十進位制的15或16位有效數字,負值取值範圍為 -1.

7976e+308 到 -4.94065645841246544e-324,正值取值範圍為 4.94065645841246544e-324 到 1.

797693e+308

浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。浮點型別的單精度值具有 4 個位元組,包括乙個符號位、乙個 8 位 excess-127 二進位制指數和乙個 23 位尾數。

尾數表示乙個介於 1.0 和 2.0 之間的數。

由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了乙個大約在 -3.4e+38 和 3.

4e+38 之間的範圍。

參考資料

7樓:駒藹赤悅愷

型別位元數

有效數字

數值範圍

float

326-7

-3.4*10(-38)~3.4*10(38)double

6415-16

-1.7*10(-308)~1.7*10(308)long

double

12818-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。

8樓:淚流雲

1. 範圍

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

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

float:

1bit(符號位) 8bits(指數字) 23bits(尾數字)

double:

1bit(符號位) 11bits(指數字) 52bits(尾數字)

於是,float的指數範圍為-127~+128,而double的指數範圍為-1023~+1024,並且指數字是按補碼的形式來劃分的。

其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

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

79e+308 ~ +1.79e+308。

2. 精度

float和double的精度是由尾數的位數來決定的。浮點數在記憶體中是按科學計數法來儲存的,其整數部分始終是乙個隱含著的「1」,由於它是不變的,故不能對精度造成影響。

float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數字,但絕對能保證的為6位,也即float的精度為6~7位有效數字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度為15~16位。

9樓:匿名使用者

using double=system.double;

[1]區別一

double要有using system;

或system.double

後才能用

[2]區別二

double是保留字,double不是.

[3]區別三

double是cts型別

double是c#型別

綜上所述,

只有語法上的區別,

沒有內容上的區別.

10樓:寵魅

不同的變數型別肯定不一樣

11樓:匿名使用者

二者都是浮點型的

但是來年各個的精度和範圍不一樣罷了

double有8個位元組

float只有4個位元組

double表示的範圍比float大 而且 一般在程式裡面都用double

錯誤少 而double在精度運算時 會出現錯誤 有誤差

12樓:匿名使用者

double有8個位元組,float只有4個位元組,所以double表示的範圍比float大

13樓:匿名使用者

double 是長整型。具體要看你的執行環境將整型定義成n位,那麼double 就是 2n位,也就是說比整型可以多存2^n倍的數。

float 是浮點型,就是帶小數點的數字的運算

float和double型別的區別

14樓:楓璽

float和double型別的區別如下:

1、變數型別不同

float屬於單精度型浮點資料。

double屬於雙精度型浮點資料。

2、指數範圍不同

float的指數範圍為-127~128。

double而double的指數範圍為-1023~1024

3、表示式指數字不同

float的表示式為1bit(符號位)+8bits(指數字)+23bits(尾數字)

double的表示式為1bit(符號位)+ 11bits(指數字)+ 52bits(尾數字)

4、占用記憶體空間不同

float佔4個位元組(32位)記憶體空間,其數值範圍為3.4e-38~3.4e+38。

double佔8 個位元組(64位)記憶體空間,其數值範圍為1.7e-308~1.7e+308。

5、有效位數不同

float只能提供七位有效數字。

double可提供16位有效數字。

15樓:great佯裝埋倦

double 和 float 的區別是double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double 和 float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

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

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位有效數字。

16樓:沒有響應

預設的浮點數都是double 只有在陣列後邊加上f才是 float的

float f=12.2f;

這是定義乙個float型別的資料

C 中關於float和double的小問題

寫常數時 19 3 5 這樣寫就是int 4.0 3.14 這樣寫就是double 4.0f 3.14f 這樣寫就是float 運算時,低精度的會自動向高精度轉換,比如有double時,int和float都會轉換成double,你那個表示式中sqrt 返回乙個double,所以其他int都轉成了do...

c語言中的double和,C語言中的double和float

double與float的區別在於bai在記憶體中存放數du據時占用的記憶體不一樣 zhi,前者dao8位元組,後者4位元組,也就回是前者儲存的小數字數答 比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.999999,...

C語言 若已定義X和Y為double型,則表示式 x 1,y x

因為3和2都是int型的,所以認為3 2的結果也是int的,捨棄後面的尾數,僅留下整數字的1.然後加上double型的x,複製給double型的y所以是2.0 1.x 1,1是baiint型別,賦值給double的x的時候自動提公升為 duzhidouble型別,所以x 1.0 注意1.0是doub...