是float類型必須要用%f嗎?
#include <stdio.h>
int main(){
? ? int age = 18;
float height = 1.85;
char unit = 'm';
printf("小明今年%d歲\n", age);
printf("小明身高%f%c\n", height, unit);
和printf("小明身高%e%c\n", height, unit);在顯示上有區別,我想問一下這是為什么呢?是float類型必須要用%f嗎?
#include <stdio.h>
int main(){
? ? int age = 18;
float height = 1.85;
char unit = 'm';
printf("小明今年%d歲\n", age);
printf("小明身高%f%c\n", height, unit);
和printf("小明身高%e%c\n", height, unit);在顯示上有區別,我想問一下這是為什么呢?是float類型必須要用%f嗎?
2015-07-30
舉報
2015-07-31
不是必須用%f。
對于浮點型,printf有幾種格式化指示符可用: %f %e %g %a ,它們的區別基本上就是輸出的格式不同。
%f?輸出格式為十進制小數,默認輸出小數點后6位(000.000000)。說明下,%f可用于double和float,double無需使用%lf。
%e 輸出格式為十進制科學計數法,默認也是點后6位(0.000000e±00)。
%g 輸出小數或科學計數法格式,具體用哪種格式取決于數的精度。一般如果指數位數小于整個浮點數的位數,就用小數輸出。
%a 輸出格式為十六進制科學計數法(0x0.000000p±0)。
以上都是對于double和float類型,對long double類型需要在指示符前加L,如%Lf
2015-07-30
是啊,float類型必須要用%f。