#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double x = 3.141592654;
printf("%.3lf\n", x);
printf("%.10lf\n", x);
cout << (int)(x * pow(10, 3) + 0.5) / pow(10, 3) << endl;
cout << setprecision(3) << x << endl;
cout << fixed << setprecision(3) << x << endl;
cout << fixed << setprecision(10) << x << endl;
}
运行结果
第一种 printf("%.nlf",x) 保留n位小数 n不可以传变量
第二种 数学算法,拿π为例 让π保留3位小数 先将π*1000=3141.592654+0.5=3142.092654取整型为3142/1000=3.142
第三种 setprecision(n)保留n位数字和fixed 一起使用就是保留n位小数