是float类型必须要用%f吗?

来源:2-5 格式化输出语句

风拂面

2015-07-30 20:58

#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吗?



写回答 关注

2回答

  • onemoo
    2015-07-31 09:49:25

    不是必须用%f。

    对于浮点型,printf有几种格式化指示符可用: %f %e %g %a ,它们的区别基本上就是输出的格式不同。

    %f 输出格式为十进制小数,默认输出小数点后6位(000.000000)。说明下,%f可用于doublefloat,double无需使用%lf。

    %e 输出格式为十进制科学计数法,默认也是点后6位(0.000000e±00)。

    %g 输出小数科学计数法格式,具体用哪种格式取决于数的精度。一般如果指数位数小于整个浮点数的位数,就用小数输出。

    %a 输出格式为十六进制科学计数法(0x0.000000p±0)。

    以上都是对于double和float类型,对long double类型需要在指示符前加L,如%Lf

    风拂面

    对的,就是这个,谢谢啊

    2015-07-31 14:19:17

    共 1 条回复 >

  • Perona
    2015-07-30 21:57:01

    是啊,float类型必须要用%f。

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926209 学习 · 20797 问题

查看课程

相似问题