c語言中double和float有什么用法上的區別

時間 2022-09-16 14:35:09

1樓:匿名使用者

平常是沒有區別的,float是單精度浮點數,double是雙精度的,區別就是double型別比float型別克表示的資料範圍更大,當你的資料精度要求很高的時候,float型別就不好用了,應該用double型別。在具體程式設計的時候,用法上沒什麼區別的。

2樓:匿名使用者

float是單精度,double是雙精度,區別在於double比float定義的浮點數更準確,也就是說double定義浮點數,在小數點後的數字比float多。

3樓:張兵

浮點型變數分為單精度(float型),雙精度(double型)和長雙進度(long double型)類

fioat,位元位數32,有效數字6~7,數值範圍-3.4x10^38~3.4x10^38

double,位元位數64,有效數字15~16,數值範圍-1.7x10^-308~1.7x10^308

在程式設計時根據浮點常量型別來擷取實際常量中相應的有效數字。假如a已指定為單精度浮點型變數:float a

a=123456.789

由於float型變數只能接受7位有效數字,因此,最後2位小數不起作用,如果a改為double型,則能全部將上述的9位數字儲存在變數a中。

4樓:老男孩

浮點型float、double,

float型 記憶體分配4個位元組,佔32位,範圍從10^-38到10^38 和 -10^38到-10^-38

例float x=123.456f,y=2e20f; 注意float型定義的資料末尾必須有"f"或"f",為了和double區別

double型 記憶體分配8個位元組,範圍從10^-308到10^308 和 -10^-308到-10^-308

例double x=1234567.98,y=8980.09d; 末尾可以有"d"也可以不寫

5樓:匿名使用者

用法上沒有什麼區別吧

double比float精度高 推薦使用!

c語言中float 和 double有什麼區別 用法 5

6樓:匿名使用者

c語言中,float和double都屬於浮點數。區別在於:double所表示的範圍,整數部分範圍大於float,小數部分,精度也高於float。

舉個例子:圓周率3.1415926535 這個數字,如果用float來表示,最多隻能精確到小數點後面的6位。

而double大約能精確到小數點後面的15位左右。具體精確到幾位,跟所用的編譯器有關,但是各個編輯器編譯器之間,也是相差不大的。

至於整數部分,float表示的整數部分的範圍,就已經夠大了,能表示到萬億級別,已經大到沒邊了。而double所表示的整數範圍,大到更沒邊了。實際開發中,除了個別高精領域,基本上,使用float就足夠了。

7樓:

型別 位元數 有效數字 數值範圍 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位有效數字(見我的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樓:匿名使用者

float為單精度,佔4位元組(32位)的記憶體空間,它的數值有效範圍是-10的38次方到10的38次方,只表示7位有效數字。而double為雙精度,8位元組,正負10的308次方之間,能精確到16位。這應該就是他們的的最基本的區別吧。。。

中國物聯網校企聯盟技術部。

9樓:布布影視剪輯

精度不一樣,一個是雙精度型別一個是單精度型別,就是小數點位數不一樣

10樓:小忍and奏

float=4個char double=16個char

c語言中double和float有什麼用法上的區別

11樓:匿名使用者

用法上沒有什麼區別。只是精度不同。

12樓:瀟

scanf 時還有printf時 %lf 和%f的區別

c語言中double和float的區別

13樓:苑聰澹臺海兒

float為單精度,佔4位元組(32位)的記憶體空間,它的數值有效範圍是-10的38次方到10的38次方,只表示7位有效數字。而double為雙精度,8位元組,正負10的308次方之間,能精確到16位。這應該就是他們的的最基本的區別吧。。。

14樓:曠俊空陽

這兩個不是函式,是資料型別.float是單精度實型,用4個位元組儲存

double是雙精度實型,用8個位元組儲存。在進行程式運算時,float型資料一律轉換為double型資料,為自動型別轉換。所以結果一樣。

但float,double兩種型別資料精度不同,float型有效數字位數為6~7位,double為15~16位,二者有區別

15樓:匿名使用者

兩個型別的精度不同。

double精度高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,在不確定的情況下還是儘量用double以保持正確性.

16樓:文婧

主要區別就是精度不同 都屬於浮點數 也就是小數 ,但精度不同 即取值的範圍不同,其中取值範圍double要比float大 ,因此所佔記憶體位數也不同 ,一般的來說 float 佔 4位元組 double 佔8位元組

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

c語言中double和float有什麼區別?

17樓:

你要是把第五行的float變成double,也應該在輸出語句改為:printf("%16f",c);

如只把第五行的float變成double,則在輸出時系統會將其進行強制轉換,出現錯誤,因為double比float範圍大,就像double是一個大箱子,float是一個小箱子,你現在把大箱子裡的東西硬往小箱子裡到,可能會裝不下的,就是這個道林。不過你可以將第七行這樣寫c=(float)5*(f-32)/9;

這樣也是正確的。

18樓:滄海雄風

因為 %f 和 float 是對應的

%d 和 int 是對應的

%lf 和 double 是對應的

不匹配就會出錯

19樓:匿名使用者

你定義的是float f,c,與的scanf("%f",&f);相互統一,

%表示輸入的型別,你定義是float型別,scanf輸入就要用相同的,

或者你定義double,那scanf也要選相應的型別,換成scanf("%lf",&f)

20樓:江湖三腳貓

double用%lf,部分編譯器裡都可以用%f

float和double精度不一樣。

21樓:匿名使用者

float是單精度

double是雙精度

如果你改成double了

printf(「%lf」,c);要改成lf

c語言中float和double各代表什麼含義,有什麼區別?

22樓:匿名使用者

都屬於浮點來數 也就

是小數源

但精度不同 可以bai取值的範圍dudouble要比float大所佔記憶體位數也不zhi同

32位機來講

float 佔 4位元組

dao double 佔8位元組

隨便啦 一般的精度 float夠用了 不過大部分情況都宣告為double

主要是因為常小數值 系統識別為double 這樣在計算時 免去型別轉化

減小錯誤

23樓:匿名使用者

float double在c語言當中都抄是浮點數它們之間區別就是精度不同

double 精度為最高15位 小數點後6位float 精度為最高6,7位小數點後6位所佔位元組數自然也不相同 一般環境中double佔float兩倍空間

c語言中float和double的區別!

24樓:隨便什麼名啦啦

區別:1、精度不一樣,float是單精度,double是雙精度;

2、表示小數的範圍不一樣,double能表示的範圍比float大;

3、double在記憶體中,佔8個位元組,float在記憶體中,佔4個位元組。

float:浮點型資料型別,float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點數使用 ieee(電氣和電子工程師協會)格式。

浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進位制指數和一個 23 位尾數。由於尾數的高順序位始終為 1,因此它不是以數字形式儲存的。此表示形式為 float 型別提供了一個大約在 -3.

4e+38 ~ 3.4e+38 之間的範圍。

double:雙精度浮點型,此資料型別與單精度資料型別(float)相似,但精確度比float高,編譯時所佔的記憶體空間依不同的編譯器而有所不同,是double float資料型別,c/c++中表示實型變數的一種變數型別。

25樓:艾素延可可

double與float的區別在於在

記憶體中存放資料時佔用的記憶體不一樣,前者8

位元組,後者4位元組,也就是前者儲存的小數

位數比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.

999999,如果按照double可能為1.999999,這是為什麼,因為c語言預設輸出小數位數都取6位,這時候看起來沒有區別,但是如果你進行格式控制,比如使用%.10,即小數保留10位,float輸出結果為1.

9999990000,而double輸出結果則為1.9999996666。

26樓:陰叡多尋芹

單精度浮點數在機內佔4個位元組,用32位二進位制描述。

雙精度浮點數在機內佔8個位元組,用64位二進位制描述。

對程式設計人員來說,double

和float的區別是double精高,有效數字16位,float精度7位。但double消耗記憶體是float的兩倍,double的運算速度比float慢得多,c語言中數學函式名稱double

和float不同,不要寫錯,能用單精度時不要用雙精度(以省記憶體,加快運算速度)。

C語言中DOUBLE型資料儲存結果

釋夕楊歌 十進位制實數轉化為二進位制,往往不能用有限的位元數精確表示。double型規定了用幾位元作指數,幾位元代表精度 即有效數字 這對十進位制實數的儲存精度進一步加了限制。 朱禮祭君 老譚的書上有 實型資料一般佔4個位元組 32位 記憶體空間。按指數形式儲存。實數3.14159在記憶體中的存放形...

C語言中float與double的區別是什麼

賀金蘭陽靜 float一般用於平常的小數,但double由於有效位數和指數範圍都比效廣所以一般用來表示比較精確的小數或者比較大的數 無法用long來表示的 如 1.121324328947893275973249,幾百億上千億等等 允秋芹敏姬 double的位數是float的2倍,float16位,...

請教c語言中double問題,請教一個c語言中double問題?

20 3是兩個整型常量進行運算,結果進行了取整 改為d 20.0 3.0 魔龍嗜血 這是型別轉換的問題。首先 20 3,系統會認為這是整形資料的運算,得出的結果為6,然後將整型資料賦給實型資料,就會將整型資料強制轉換為實型資料。故輸出結果為 6.000000 樓主你同時也犯了一個錯誤,計算機所有實型...