#include <sstream>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float a = 10.4234;
//第一种方式,从根本改变输出流
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;
//第一种方式,常规型
cout<<setprecision(2)<<fixed<<a<<endl;
//第三种方式,全局整体型
cout.precision(2);
cout<<a<<endl;
// float 保留两位转为 std::string
ostringstream oss;
float b=123.666;
oss<<setiosflags(ios::fixed)<<setprecision(2)<<b<<endl;
string s=oss.str();
cout<<s;
}
但需注意:
setiosflags(ios::fixed)<<setprecision(2)
对后续所有输出都起作用,而不是仅对后一个对象起作用。