【问题标题】:setprecision without iomanip没有 iomanip 的 setprecision
【发布时间】:2012-12-22 20:37:52
【问题描述】:

我想编译一个 C++ 应用程序,我不能使用

#include <iomanip>

有没有其他方法可以做到这一点?

信息:我需要设置精度为 5

【问题讨论】:

  • 为什么用 c、jquery 和 php 标记?

标签: c++


【解决方案1】:

是的,你有能力使用

cout.precision(5);

这不需要

#include <iomanip>

注意:这将为整个文档设置精度。

示例:

cout.precision(5);
cout << f;

【讨论】:

  • precision() 设置始终具有粘性。唯一没有粘性的标准格式设置是width()
  • 而且我发现仅将操纵器用于非粘性设置(或在完整表达式末尾重置设置的操纵器)是一个很好的约定。但我似乎独自一人。 (当然,在实际代码中,您几乎不会使用 std::setw 以外的标准操纵器,并且您可以安排您的家庭构建操纵器在完整表达式的末尾重置状态。)
【解决方案2】:

您可以直接在流上设置precision(),例如:

std::cout.precision(5);

【讨论】:

  • 我正在使用“使用命名空间标准”。
  • 所以?我正在开发大型软件,我发现使用它们各自的命名空间来限定名称有助于避免歧义。此外,从问题中看不到正在使用 using 指令(我认为在大多数情况下这是不好的做法)。
  • @Amden:如果您在自己的代码中不需要std::,您可以随意删除它;同样,如果您引用了std::cout,您可以使用它(std::ostream&amp; amden = std::cout; amden.precision(5);)。但是这里给出完整正确的原始代码行是对的。
猜你喜欢
  • 2021-06-15
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
相关资源
最近更新 更多