dengjiaxi 发表于 2020-10-16 20:09:33

printf函数中的f转换字符的不懂之处

兄弟们先看看小甲鱼给的例子:
#include <stdio.h>

int main()
{
      
      float c = 3.14;
      double d = 3.141592653;

      printf("圆周率是:%.2f\n", c);
      printf("精确到小数点后9位的圆周率是:%11.9f\n", d);

      return 0;
}

就是这个例子,我中间省略了一点。
我的问题是在使用转换字符f的时候输出时要用%f,例子中有两个 ,一个是%.2f,一个是%11.9f,这两个有什么不同,怎么区分吗?还是说给douuble定义了以后f前要加11.几,那个几就是小数点后几位。

昨非 发表于 2020-10-16 20:14:41

本帖最后由 昨非 于 2020-10-16 20:29 编辑

%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

关于printf()格式输出,详情请参考:
https://blog.csdn.net/whatday/article/details/8675549

满意的话还请设个最佳

dengjiaxi 发表于 2020-10-16 20:29:35

兄弟,太专业了,没看懂,刚刚看了两天视频还没有完全理解。

昨非 发表于 2020-10-16 20:30:50

dengjiaxi 发表于 2020-10-16 20:29
兄弟,太专业了,没看懂,刚刚看了两天视频还没有完全理解。

意思就是m是小数点前后的总位数,n是小数点后的位数

昨非 发表于 2020-10-16 20:34:02

就比如:我打印3.141592653的时候,设置为
printf("精确到小数点后9位的圆周率是:%5.3f\n", d);
也就是总共五位数,三位小数
输出结果就是
精确到小数点后9位的圆周率是:3.142
可以看到,3前面有个空格,加上小数点后面的三位,一共五位

dengjiaxi 发表于 2020-10-16 20:35:05

OK谢谢老哥了,太感谢了
页: [1]
查看完整版本: printf函数中的f转换字符的不懂之处