輸出語句中 %f %lf的區別,輸出語句不是輸入
各位好!
在我所學的課本中 有一個這樣的輸出%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;
}
運行結果為
1.1000000,2.2000000
1.1000000,2.2000000
在輸入語句中對%f和%lf有嚴格的規定
但請問在輸出語句中這倆個有什么區別
2015-02-11
printf的%f說明符的確既可以輸出float型又可以輸出double型。根據“默認參數提升”規則(在printf這樣的函數的可變參數列表中,不論作用域內有沒有原型,都適用這一規則)float型會被提升為double型。因此printf()只會看到雙精度數。
2015-02-11
在printf中對于float和double類型都應該用%f。
雖然把%lf用于double也不報錯。