c語言的double和int的區別,d和f的區別

2021-05-23 17:53:59 字數 6211 閱讀 5630

1樓:南北浮生

int:整型,即我們通常意義下的整數變數,例如1、2、3、4、5等。

double:雙精度實型數,即我們通常意義下的小數,例如1.25、1.37、5.0等。

%d:這是c語言中scanf用於輸入整數的格式,輸入整數的格式是scanf("%d",&a)。

%f:這是c語言中scanf用於輸入小數的格式,輸入整數的格式是scanf("%lf",&a)。

在你的公式c=(f-32)*5/9計算結果應該為雙精度,不能用int來定義變數。如果強制賦型會導致資料丟失:小數部分會丟失,只保留整數部分。

雙精度浮點數(double)是計算機使用的一種資料型別,使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字,其可以表示的數字的絕對值範圍大約是:2.

23x10-308 ~ 1.79x10308。ieee754為其定製標準。

c/c++程式語言中,int表示整型變數,是一種資料型別,用於定義一個整型變數,在不同編譯環境有不同的大小,不同編譯執行環境大小不同。在32/64位系統中都是32位,範圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

參考資料

2樓:墨軒

double是雙精度實型數(小數),int為整型,%d是輸出有符號的十進位制數,%f輸出實型數(小數),%lf輸出doule型資料,當用int代替double時,會發生資料丟失,也就是說小數部分丟失,只留下整數部分,希望可以幫到你!

3樓:匿名使用者

不能用int替換

設f為33.0,(f-32)*5/9的值為0.55。即c的值為0.55

如果用int型別,不能帶小數點後的數,所以c的值為0,結果是錯誤的。

只有當f-32為9的倍數時,就可以用int代替,否則會因為有小數導致結果出錯。

double是能記錄帶小數點的資料,int只能是整數。如果將小數賦值給int型資料,如6.3賦值給int,值為6,小數後的值被刪去了。

在scanf裡面,輸入整數的格式是scanf("%d",&a);輸入double數的格式是scanf("%lf",&f);

4樓:匿名使用者

因為所有的計算機語言,每個型別都向更精確的方向去自動轉。比如說,int能自動轉double型,但是倒過來就不行,必須強制轉。

5樓:匿名使用者

double就是小數,int是整數,%f是浮點數佔位符,要換成int整型的,要寫%d 不能是%f

c語言中%d和%f是什麼意思啊?

6樓:太平洋電腦網

%d表示輸入或輸出十進位制有符號數;%f表示輸入或輸出浮點數(float,四位元組表示);在c語言中輸出不同資料時需要用到不同的格式字元,%d是用來輸出十進位制整型資料的實際長度輸出,%f是以小數形式輸出單、雙精度度數。以下是詳細介紹:

1、%d表示輸入或輸出十進位制有符號數;

2、%f表示輸入或輸出浮點數(float,四位元組表示);

3、另%lf表述輸入或輸出雙精度浮點數(double 8位元組表示);

4、在輸出不同資料時要用不同的的格式字元,比如說這個%d是用來輸出十進位制整型資料的實際長度輸出;%f是以小數形式輸出單、雙精度度數,隱含輸出6位小數;還有很多,如%s(輸出字串)

7樓:x證

意思如下:

%d 是輸出輸入格式 為整型,用於 int , short int;%f 是輸出輸入格式 為單精度浮點型,用於 float。

c語言簡述:

c語言運算子是說明特定操作的符號,它是構造c語言表示式的工具。c語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算子處理。除了常見的三大類,算術運算子、關係運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子,比如位運算子。

8樓:魚羽彤縱美

已解決問題

收藏**到**空間

9樓:匿名使用者

%d 是輸出輸入格式 為整型,用於 int , short int

%f 是輸出輸入格式 為單精度浮點型,用於 float

double 變數要用 %lf, l 是 long 的意思。

10樓:袁語蝶翠衛

它們是格式化輸入輸出函式scanf,printf中的格式說明,由「%」加「格式符」組成,%d說明是整形格式,%f說明是浮點型格式(即實數,帶小數點的),例如

printf("%d%f",a,b)的意思是按整數型式輸出a的值,按浮點數形式輸出b的值!

先去了解一下格式化輸入輸出函式scanf,printf就什麼都明白了

11樓:黨青雪杞逸

代表資料型別~

%d 是整型

%f 是浮點型

通常用在printf或者scanf函式中~

12樓:宿春雨邸宛

例如printf(%d,a)即表示輸出的a

的格式為整數。

而%d表示整數的意思,而%f表示浮點數,即小數點後精確四位

13樓:士谷蘭夏邁

在c語言中,「%d」用於輸出int整形資料,「%f」用於輸出float浮點型資料。

14樓:匿名使用者

這是輸入輸出控制符。

%d是說輸入輸出十進位制整數。%f書輸出浮點數。

你應該把全部的**貼進來。

應該是scanf("%d",&a);//就是說輸入十進位制整數。

printf("a=%f",a);//輸出浮點數。

15樓:匿名使用者

分別表示輸出整形(%d)和浮點型資料(%f)。

16樓:安徽新華電腦

比如顯示小數點後3位:%.3f

17樓:匿名使用者

%d是指以整形輸出

%f是以單精度輸出

c語言中int跟float的區別,%d跟%f的區別,查書float是單精度,不過還是不理解什麼意思

18樓:匿名使用者

int 就是整數,

float就是小數,double雙精度bai浮點du數就是小數部分位zhi

數多一倍的浮點數

他們能表示dao的範圍就不多說了版,網上有。

他們存在電腦中,實際上就是由0和1組成的一串數字,好像都是4位元組,就權是32位2進位制數表示(一位元組表示8位2進位制數)

int型數就是把這個32位二進位制換算成整數表示,float就是把前16位翻譯成整數,後16位翻譯成小數,然後組起來表示;

%d就是將目標以int型的原理表示出來,而%f就是將目標數字以float型的原理表示出來……

我覺得這樣說夠大白話的了……

19樓:匿名使用者

比如bai說1,2,3,4。這種就是整數du是int 而像1.222是實數 是float

%d按照十進位制

zhi輸出資料,

dao%f就是按照實數回輸出可以有小數部分double是雙精度答,雙精度與單精度之間的區別在於兩者的範圍不同,其他都一樣

20樓:匿名使用者

int整型常量比如 int i=5;bai %d就是du這樣

int i;scanf("%d",&i);,表示整型zhi資料格式dao。

float浮點型常量比版如 float i=5.3; %f就是這樣權float i;scanf("%f",&i);,表示整型資料格式。單精度是和double這類的雙精度相對的,這個需要學習一定二進位制浮點數表示法才明白精度是怎麼回事。

暫時可以理解成精度高算得準確的意思

21樓:匿名使用者

%d輸出 int型 就是0-30000+

%f輸出 float型 就是8位的帶小數點的數值

22樓:匿名使用者

int只是整數 float說俗點 帶小數點

23樓:匿名使用者

int是整型,float是浮點型。

c語言問題%f和%lf的區別

24樓:徜逸

由於精度的原因,輸出%lf和%f的資料不同,可能會造成錯誤。

主要有一下四點專區別:

1、代表的資料型別不同屬

%f代表單精度浮點型資料(float),%lf代表雙精度浮點型資料(double)。

2、有效數字位數不同

單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。

3、所能表示數的範圍不同

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

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

一般來說,cpu處理單精度浮點數的速度比處理雙精度浮點數快。

25樓:張

第6課時 c語言和c++的區別

26樓:匿名使用者

好好看看資料型別的概念吧,把前面的double換成float後面就可以用%f;%f代表按回實型輸入或輸出答,而%lf代表按雙精度輸入或輸出,怎麼會沒有關係呢?輸入時採取的格式不同,存在電腦裡的資料就不同,電腦裡同樣的資料(都是由0和1組成的相同的二進位制數)按不同的格式輸出結果也不會相同

27樓:匿名使用者

你之前已經定義到double了,最後的輸出值是按照表示式中的最多有效數字的形式定義的,也就是說如果你定義int a;doubule b;但是輸出是c=a+b,c則是double型

28樓:匿名使用者

你定義的double 當然配套的就要用%lf啊 至於%d 和%ld是一樣的 並不是你資料不存在就可以不用%lf

29樓:匿名使用者

float型別只有7位

因為是double型別乘一起去就不知道多少位了

所以得變成longfloat

30樓:_葉子妞妞

%f和%lf分別是復float型別和double型別用制於格式化輸入輸出時對bai應的格式符號。

其中:du

float,單精度浮點zhi型,對應dao%f.

double,雙精度浮點型,對應%lf.

在用於輸出時:

float型別可以使用%lf格式,但不會有任何好處。

double型別如果使用了%f格式可能會導致輸出錯誤。

在用於輸入時:

double 型別使用了%f格式,會導致輸入值錯誤。

float型別使用double型別不僅會導致輸入錯誤,還可能引起程式崩潰。

所以在輸入輸出時,一定要區分好double和float,而使用對應的格式符號。

31樓:寳貝謙

因為你定義的a,b,c都是double型吖…所以scanf()接收的a,b,c都是double型…double就是%lf咯…

如果用%f就是flout型咯…就跟定義的卟同了喔…

32樓:匿名使用者

f: float

lf:double

33樓:流星劃破夜空

#include

#include "math.h"

int main(void)

else

printf("it is not ********!\n");

return 0;

}試試這個

34樓:匿名使用者

你要輸出多少位,那按照下面這種輸出試試:

printf("%hf",yourfloat) ,其中,h用個小數替換掉回(用整數會成預設位數)

答,小數點後面的數字的值就是你列印yourfloat的小數點後面的位數,如"%0.15f" 、"%123.15f" 、"%0.000015f"都是列印小數點後15位

35樓:

看了你抄的**再結合你說的有時襲沒問題,

有時有問題,我判斷應該是你**中沒有將求出來的面積放入變數中儲存導致的。如果不放入變數中,你求出來的就是一個double型別的數值,此時你以float型輸出,由於型別不匹配所以程式自然報錯。如果你將這個值賦給一個變數則程式會自動分配一個記憶體給此變數,這樣當你以double輸出時程式會自動進行型別運算,自然也就不會出錯了。

在c語言中int和double怎麼轉換

1 開啟baivc軟體,新建一個空白的vc專案文du件 2 編寫轉換zhi程式,首dao先新增標頭檔案,在main主函式回中定義int型別變數答sum,count,再定義double型別變數todouble,並進行強制型別轉換,強制轉換的格式就是括號加要轉換的型別,最後使用printf列印結果 3 ...

C語言中double p,a p和double a,p是不是等價的

二者是等價的。但你要搞清楚了,指標什麼時候也不加 宣告指標時,那個 是double的而不是p的。取指標指向的內容時的 p中的 是取值操作符,也不是p的!在一個型別符下宣告指標變數和普通變數時,在指標變數前寫一個 是為了區別這個變數是指標而不是普通變數,也是前面的型別符的。如 int a,p,b,q ...

c中怎樣將double型強制轉換為int型

double a 4.6 一,int b int a 二,int c convert.toint32 a double temp1 int temp2 temp1 3.0 temp2 system.convert temp1 int i double b 0 i int b int a double...