C++ 与%.2f或%.2lf等效的ostream

C++ 与%.2f或%.2lf等效的ostream,c++,iostream,precision,C++,Iostream,Precision,这将打印出0.50。这就是我想用ostream操纵器复制的内容。但是,没有任何明显的iomanip操纵器允许我设置所需的最小小数位数(如果我理解正确,setprecision设置最大宽度)。是否有一种纯粹的iostream或boost方法可以做到这一点?将setprecision与fixed结合使用 根据本标准第22.4.2.2.2节,iostreams上的精度规范与printf上的精度规范具有完全相同的效果。而fixed给出了与printf%f完全相同的行为。您可以从iomanip标题使用st

这将打印出
0.50
。这就是我想用ostream操纵器复制的内容。但是,没有任何明显的
iomanip
操纵器允许我设置所需的最小小数位数(如果我理解正确,
setprecision
设置最大宽度)。是否有一种纯粹的
iostream
boost
方法可以做到这一点?

setprecision
fixed
结合使用


根据本标准第22.4.2.2.2节,iostreams上的精度规范与
printf
上的精度规范具有完全相同的效果。而
fixed
给出了与
printf
%f完全相同的行为。您可以从
iomanip
标题使用
std::fixed
std::setprecision

double d = 1/2.;
printf("%.2lf\n", d);
#包括
#包括
内部主(空){
双d=1.0/2;

std::cout推进方式:。

哇,这就像用热核弹头杀死蚊子一样:-)@paxdiable:不,它解决了一个真正的问题。
printf
不是类型安全的(并且适用于少数类型),流格式化是痛苦的(在某些情况下,你绝对需要能够使用格式字符串)。@FooBah:See
#include <iostream>
#include <iomanip>
int main(void) {
    double d = 1.0 / 2;
    std::cout << std::fixed << std::setprecision(2) << d << std::endl;
    return 0;
}