保留6位有效数字
#include<iostream>
#include<iomanip> //对应setprecison
#include<vector>
#include<math.h> //对应floor
using namespace std;
int main(){
double a=3.12312313;
cout<<setprecision(8)<<a<<endl;
cout<<floor(a*100+0.5)/100<<endl;
}
setprecison函数用来设置有效数字个数
floor函数需要根据具体情况,乘以不同的数字,+0.5是为了四舍五入。我发现当*的系数大于10的7次方时,结果和10的7次方的结果一致,应该是超出double界限所致