double d = 1/2.;
printf("%.2lf\n", d);
这会打印出0.50
。这是我想要使用ostream操纵器复制的。然而,没有一个明显的iomanip
操纵器让我设置最小所需小数位(如果我理解正确,setprecision
设置最大宽度)。有没有一个纯粹的iostream
或boost
方式来做到这一点?ostream相当于%.2f或%.2lf
double d = 1/2.;
printf("%.2lf\n", d);
这会打印出0.50
。这是我想要使用ostream操纵器复制的。然而,没有一个明显的iomanip
操纵器让我设置最小所需小数位(如果我理解正确,setprecision
设置最大宽度)。有没有一个纯粹的iostream
或boost
方式来做到这一点?ostream相当于%.2f或%.2lf
使用setprecision
结合fixed
。
根据该标准的第22.4.2.2.2节,iostream的精度规格与printf
的效果完全相同。并且fixed
给出与printf
的%f
完全相同的行为。
可以使用std::fixed
和std::setprecision
从iomanip
头:
#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
。
你能给一个链接吗? –
@FooBah:看到http://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents –