輸出語句中 %f %lf的區(qū)別,輸出語句不是輸入
各位好!
在我所學(xué)的課本中 有一個這樣的輸出%lf
#include<stdio.h>
int main()
{
?? float a=1.1;
?? double b=2.2;
?? printf("%f,%f\n",a,b);
?? printf("%lf,%lf\n",a,b);
?? return 0;
}
運(yùn)行結(jié)果為
1.1000000,2.2000000
1.1000000,2.2000000
在輸入語句中對%f和%lf有嚴(yán)格的規(guī)定
但請問在輸出語句中這倆個有什么區(qū)別
2015-02-11
printf的%f說明符的確既可以輸出float型又可以輸出double型。根據(jù)“默認(rèn)參數(shù)提升”規(guī)則(在printf這樣的函數(shù)的可變參數(shù)列表中,不論作用域內(nèi)有沒有原型,都適用這一規(guī)則)float型會被提升為double型。因此printf()只會看到雙精度數(shù)。
2015-02-11
在printf中對于float和double類型都應(yīng)該用%f。
雖然把%lf用于double也不報錯。