【问题标题】:Does the instruction printf(“%4.2f”, num); display four digits including two decimal places? [closed]指令是否 printf(“%4.2f”, num);显示四位数字,包括两位小数? [关闭]
【发布时间】:2020-09-13 19:16:54
【问题描述】:

在 C++ 中,指令printf("%4.2f", num); 是否显示四位数字,包括两位小数?

【问题讨论】:

  • 不能自己做个小程序来测试一下吗?
  • 你的课堂笔记是怎么说的?你读过的教程?你有什么教科书? references 可用吗?请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?""What types of questions should I avoid asking?" 的部分。也采取tour 并阅读How to Ask。最后请阅读this question checklist
  • 您可以轻松阅读有关 printf 和格式说明符的信息。从现有资源中不难找到,而且有很好的资源。
  • 编写一个测试行(如果您没有编译器,请访问 ideone.com)并用答案更新问题
  • @Someprogrammerdude 当我看到一个对现在不允许的非常有用的问题的引用时总是很难过

标签: c++


【解决方案1】:

指令printf("%4.2f", num);显示四位数字,包括两位小数?

不,它不是这样工作的。

按以下格式指定格式字符串:

%[flags][width][.precision][size]type

[] 中的说明符是可选的

width 说明符表示要输出total 的最小字符数(可能更多!)。如果未指定,width 默认为 1。

precision 说明符表示f type 在小数点后打印多少位(precision 对于不同的类型s)。如果未指定,precision 对于f type 默认为 6。

在您的示例格式字符串中:%4.2f4width2precisionf输入

例如,给定double num = 123.0;

printf("%f", num);

width 为 1,precision 为 6,因此它打印 "123.000000" - 至少 1 个字符,包括小数点和小数点后6位。

printf("%4.2f", num);

width 为 4,precision 为 2,因此它打印 "123.00" - 至少 4 个字符,包括小数点和小数点后2位。

printf("%10.2f", num);

width 为 10,precision 为 2,因此它打印 " 123.00" - 至少 10 个字符,包括 4 个前导添加空格作为填充、小数点和小数点后的 2 位数字。

Live Demo

有关格式字符串及其输入和输出的更多详细信息,请参阅this printf reference

【讨论】:

  • 不正确的宽度指定字段的最小宽度,如果需要它用空格填充ideone.com/rLgO1A
  • 没关系。我已经确定了答案
  • 朋友我编程很差,快告诉我是真是假
  • @Eindid 是假的。我的答案中的示例,尤其是第二个示例,如何无法为您解决这个问题?
【解决方案2】:

4 是字段的宽度,点后的 2 是要打印的浮点数的精度规范。但这也取决于num的值是多少。所以,不,不能保证是 4 位数字。如果 num 是 234342.43,那么它不会是 4 位数字。

【讨论】:

  • 朋友我编程很差,快告诉我是真是假
  • @Eindid 我提出了一个例子,它不会是四位数。所以答案是错误的。在任何情况下,您都可以编写一个只包含几行代码的程序来亲眼看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多