ostream等效于%.2f或%。2lf

时间:2011-09-29 03:42:34

标签: c++ iostream precision

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

打印出0.50。这就是我想用ostream操纵器复制的内容。但是,没有明显的iomanip操纵器允许我设置所需的最小小数位(如果我理解正确,setprecision设置最大宽度)。是否有纯iostreamboost方式来执行此操作?

3 个答案:

答案 0 :(得分:10)

您可以使用std::fixed标题中的std::setprecisioniomanip

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

根据需要输出0.50

答案 1 :(得分:3)

setprecisionfixed结合使用。

根据标准第22.4.2.2.2节,iostreams的精确规格与printf的精确规格完全相同。 fixed提供与printf的{​​{1}}完全相同的行为。

答案 2 :(得分:1)