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...