是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
不是必须用%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
举报