是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);在顯示上有區(qū)別,我想問一下這是為什么呢?是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);在顯示上有區(qū)別,我想問一下這是為什么呢?是float類型必須要用%f嗎?
2015-07-30
舉報(bào)
2015-07-31
不是必須用%f。
對(duì)于浮點(diǎn)型,printf有幾種格式化指示符可用: %f %e %g %a ,它們的區(qū)別基本上就是輸出的格式不同。
%f?輸出格式為十進(jìn)制小數(shù),默認(rèn)輸出小數(shù)點(diǎn)后6位(000.000000)。說明下,%f可用于double和float,double無需使用%lf。
%e 輸出格式為十進(jìn)制科學(xué)計(jì)數(shù)法,默認(rèn)也是點(diǎn)后6位(0.000000e±00)。
%g 輸出小數(shù)或科學(xué)計(jì)數(shù)法格式,具體用哪種格式取決于數(shù)的精度。一般如果指數(shù)位數(shù)小于整個(gè)浮點(diǎn)數(shù)的位數(shù),就用小數(shù)輸出。
%a 輸出格式為十六進(jìn)制科學(xué)計(jì)數(shù)法(0x0.000000p±0)。
以上都是對(duì)于double和float類型,對(duì)long double類型需要在指示符前加L,如%Lf
2015-07-30
是啊,float類型必須要用%f。