當前位置:首頁 » 編程語言 » c語言里f和lf的區別
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言里f和lf的區別

發布時間: 2022-04-27 22:25:53

❶ C 語言printf時,%f 與%lf 有什麼區別, 難道不是double 用%lf, float 用%f

我用VC++14.0和Dev C++5.11編譯後都沒出現你說的這種情況。

%l %lf對printf函數來說是沒有區別,因為傳遞給c語言可變參數函數的float類型變數都會被隱式提升為double, 所以這里的%f和%lf的效果是一致的。
但是對於scanf,%f和%lf的含義就不一樣了,因為傳遞的是指針。

一般建議對於float類型使用%f,double類型使用 %lf

❷ c語言中%f與%lf有什麼區別

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

一、輸入不同

1、%lf :%lf 輸入數據時要求是float類型。

2、%f :%f 輸入數據時要求是double類型。

二、輸出不同

1、%lf :double類型以%lf 格式輸出數據時不會自動轉成%lf 格式,會導致輸入值錯誤。

2、%f :float類型以%f 格式輸出數據時會自動轉成%f 格式,不會導致輸入值錯誤。

三、精度損失不同

1、%lf :單精度數據使用%lf 格式會造成精度損失。

2、%f :雙精度數據使用%f 不會造成精度損失。

❸ c語言中%f與%lf有什麼區別

最簡單的區別:
%f
一般對應單精度類型
float
%lf
一般對應雙精度類型
double。

❹ %lf 與%f有什麼區別(給個簡單的例子說明)

%lf 與%f的區別有:

1、所能表示數的范圍不同

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

2、有效數字位數不同

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

3、代表的數據類型不同

%f代表單精度浮點型數據(float),%lf代表雙精度浮點型數據(double)。在程序中處理速度不同一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快。

例,以標識符列表方式定義函數:

#include <stdio.h>

void f(a, b)

int a;

float b;

{

printf("%d, %f ", a, b);

}

int main()

{

f();

f(1);

f(2, 3.14);

return 0;

}

❺ c語言里%f跟%lf有什麼區別

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

❻ C語言問題%f和%lf的區別

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

❼ c語言編程中%lf和%f,有啥區別,什麼double,長短型,求大神解釋

作輸出格式控制字元串時效果一樣,不說。作scanf的輸入控制字元串時,%lf是雙精度,8位元組;%f是單精度,4位元組;——也就是%lf對應double型就是,%f對應float型變數,用錯了運行結果就出錯。double的長型是10位元組,精確到19位,double型是8位元組,精確到16位,未見過「短double」型。但好多編譯器下寫long double仍是8位元組,就是說沒有區分長型和普通型……供參考。