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;
}