Foo*_*Bah 8 c++ precision iostream
double d = 1/2.;
printf("%.2lf\n", d);
Run Code Online (Sandbox Code Playgroud)
打印出来0.50.这就是我想用ostream操纵器复制的内容.但是,没有一个明显的iomanip操纵器允许我设置所需的最小小数位(如果我理解正确,则setprecision设置最大宽度).有没有纯粹iostream或boost方法这样做?
pax*_*blo 12
您可以使用std::fixed,并std::setprecision从iomanip头:
#include <iostream>
#include <iomanip>
int main(void) {
double d = 1.0 / 2;
std::cout << std::fixed << std::setprecision(2) << d << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
0.50根据需要输出.
setprecision与 结合使用fixed。
根据标准第 22.4.2.2.2 节,iostream 上的精度规范与printf. 并给出与 sfixed完全相同的行为。printf%f