c語言中f與lf有什麼區別,C語言問題 f和 lf的區別

時間 2021-10-14 23:44:45

1樓:

%lf\n和%f\n的區別為:輸入不同、輸出不同、精度損失不同。

一、輸入不同

1、%lf\n:%lf\n輸入資料時要求是float型別。

2、%f\n:%f\n輸入資料時要求是double型別。

二、輸出不同

1、%lf\n:double型別以%lf\n格式輸出資料時不會自動轉成%lf\n格式,會導致輸入值錯誤。

2、%f\n:float型別以%f\n格式輸出資料時會自動轉成%f\n格式,不會導致輸入值錯誤。

三、精度損失不同

1、%lf\n:單精度資料使用%lf\n格式會造成精度損失。

2、%f\n:雙精度資料使用%f\n不會造成精度損失。

2樓:匿名使用者

當然有區別%lf匹配 double%f匹配 float你這樣使用當然相同,一般輸出時不會有什麼區別,因為float的精度已經很高了,實際中很難用到float無法表示的數,但是一般從命令視窗或者從檔案中讀取資料時就會有問題!如果資料是double型的,那麼你scanf函式中必須用%lf給你舉個例子吧:#include "stdio.

h"void main()

3樓:匿名使用者

%f是單精度浮點型,輸出的時候要滿足6位小數。 %lf就是輸出數值總長度為l,整數個數加小數個數,不足補空,右頂格起 %f和%lf對scanf來說有差別,%f用於float,%lf用於double 在printf中,%f用於float和double,因為float會自動轉為double,另外,%lf對於printf在c89標準中無定義

4樓:倒黴熊

最簡單的區別:

%f 一般對應單精度型別 float

%lf 一般對應雙精度型別 double。

5樓:亂碼語言

格式上的不一樣,(%f%f)格式時兩個資料可以連著輸入,(%f,%f)格式則需要在兩個資料間加一個「,」。

6樓:

沒有什麼太大區別,就是在輸入資料的時候 ,如果是%f%f,那麼輸入的兩個資料之間可以是空格、tab鍵和回車;

如果是%f,%f,那麼輸入的兩個資料之間必須用逗號隔開,這是因為在前面的%f,%f裡規定了它的輸入格式是逗號分隔。

7樓:職高女生

lf%格式對應double型,8位元組

f%格式對應float型,4位元組

8樓:牽著你的手

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

其中:float,單精度浮點型,對應%f.

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

在用於輸出時:

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

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

在用於輸入時:

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

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

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

9樓:匿名使用者

支援樓上!

%f是單精度 float

%lf是雙精度 doeble

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

10樓:徜逸

由於精度的原因,輸出%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處理單精度浮點數的速度比處理雙精度浮點數快。

11樓:張

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

12樓:匿名使用者

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

13樓:匿名使用者

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

14樓:匿名使用者

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

15樓:匿名使用者

float型別只有7位

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

所以得變成longfloat

16樓:_葉子妞妞

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

其中:du

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

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

在用於輸出時:

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

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

在用於輸入時:

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

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

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

17樓:寳貝謙

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

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

18樓:匿名使用者

f: float

lf:double

19樓:流星劃破夜空

#include

#include "math.h"

int main(void)

else

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

return 0;

}試試這個

20樓:匿名使用者

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

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

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

21樓:

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

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

22樓:斬月諸河

%f:float

%lf:double

因為你定義時用的是double型別,佔8個位元組而指定格式符是%f,對應的是float佔4個位元組,而資料型別位元組小的可以向大的轉換,反之則不行,所以會錯。

23樓:御板

scanf()語句:"%lf"用於double型別,"%f"用於float型別

printf(語句:"%f"既可用於double型別,又可用於float型別,但意思是指「保留6位小數」

24樓:匿名使用者

嘗試了一遍,還真是,十分感謝

25樓:匿名使用者

定義double 就用lf輸入輸出 定義float就用f輸入輸出

c語言中%d和%f還有%c有什麼區別

26樓:好程式設計師

%c,後邊的引數當字元處理;

%d,後邊的引數當整數處理;

%f,後邊的引數當浮點數處理。

27樓:匿名使用者

%d是int型資料的萬用字元

%f是float型資料的萬用字元

%c是char型資料的萬用字元

常用在printf等構建字串的函式中

28樓:墨陌沫默漠末

1、%d,d格式bai字元。用來輸出十進位制整數du,按整型數zhi據的實際長度輸dao出。

2、 %f ,用來輸出實版數(包括單雙精度),以權

小數形式輸出。

c語言中對於不同型別的資料用不同的格式字元,這兩個都是printf函式格式字元。

u格式符,用來輸出unsigned型資料,即無符號數,以十進位制形式輸出。

c格式符,用來輸出一個字元。

s格式符,用來輸出一個字串。

f格式符,用來輸出實數(包括單雙精度),以小數形式輸出。

e格式符,以指數形式輸出實數。

g格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出是佔寬度較小的一種),且不輸出無意義的零。

請問c語言中,%c %d %f %lf分別是什麼意思哦

29樓:匿名使用者

%c:是存取或者輸出一個字元

%d:是存取或者輸出一個整數

%lf: 是存取或者輸出一個長整型小數。

30樓:壞男孩

都是轉換符,%c要求將結果轉換為字元型; %d 要求轉換為十進位制型;%f 轉換為浮點型;%lf轉換為長浮點型。

31樓:小欽

這都是格式控制符,%c是格式化輸出字元型變數,%d格式化輸出整型變數,%lf和%f分別是格式化輸入和輸出浮點型變數

C語言中c和d和f有什麼區別啊,C語言中 d和 f是什麼意思啊?

c 符號 d 整型 f 符點 聞雞休息 printf c d f a,b,c c 將a按字元輸出 d 將b按整型輸出 f 將c按浮點型輸出 如 printf c d f 1 2,3 輸出結果為 1 2 3.000000 注意 如果將整型按字元型輸出,則將會是ascii碼錶中該整型值對應的字元。如果將...

c語言中 1 0與 1 0有什麼區別?

你開機啟動項是不是有qq?目測是qq的垃圾新聞,建議你優化一下開機啟動項,上面有禁止率,可以看著禁止,肯定是這裡面的其中一個,只不過qq疑點最大!1 0 49 0 49。1 0寫錯了吧,應該是 1 0吧?那是八進位制1 0 1。c語言的0和1都是什麼意思啊?最近 盤 字很流行,盤是什麼意思?為什麼能...

c語言中的lf是什麼意思,C語言裡的 lf, 2lf, 2f是什麼意思?

天雲小店 lf是輸入輸出格式說明符,按double型進行輸入或輸出。舉例如下 double a 定義一個double型變數,用來儲存使用者輸入的資料 scanf lf a 接收使用者輸入的資料,並轉化為double型,並賦值給變數a printf lf a 按變數a的值按double型輸出 雋娜釗帥...