c++ - ostream 相当于 %.2f 或 %.2lf

标签 c++ iostream precision

double d = 1/2.;
printf("%.2lf\n", d);

这会打印出 0.50。这就是我想使用 ostream 操纵器复制的内容。然而,没有一个明显的 iomanip 操纵器让我设置所需的最小小数位数(如果我理解正确,setprecision 设置最大宽度)。是否有纯粹的 iostreamboost 方法来做到这一点?

最佳答案

您可以使用 iomanip header 中的 std::fixedstd::setprecision:

#include <iostream>
#include <iomanip>
int main(void) {
    double d = 1.0 / 2;
    std::cout << std::fixed << std::setprecision(2) << d << std::endl;
    return 0;
}

这会根据需要输出 0.50

关于c++ - ostream 相当于 %.2f 或 %.2lf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592207/

相关文章:

c++ - 如果我声明a = 5然后返回&a,则在哪里分配内存?

c++ - 使用输出流显示文本 "in-game"是个好主意吗?

c++ - std::istream::read 的通用形式?

c++ - 如何在使用 TensorRT C++ API 编写的 TensorRT 模型上运行半精度推理?

java - 我应该直接访问 int 还是从 getter 获取 double 并进行转换?

c++ - 前向声明?包括守卫?或其他什么?

c++ - 混合转换指针和引用

c++ - C 和 C++ 原子之间的互操作性

c++ - 在 iostream header 中使用静态数据

c++ - 如何在 C++ 中使用泛型函数?