方法一:使用setprecision(n),头文件iomanip
setprecision(n) 保留n位有效数字
fixed << setprecision(n) 保留n位小数
#include<iostream>
#include<iomanip>
using namespace::std;
int main() {
double a=1.01234567;
int n;
cin >> n;
cout << setprecision(n) << a << endl;
cout << fixed << setprecision(n)<< a <<endl;
cout << setprecision(n) << a << endl;
}
输入n为5,输出分别为
1.0123
1.01235
1.01235
fixed << setprecision(n)固定了有效数字位数,所以第三次输出1.01235
方法二:使用printf
#include<iostream>
using namespace::std;
int main() {
double a=1.01234567;
int n;
cin >> n;
printf("%.*f", n, a);
}
输入n为6,输出为1.012346
printf中的*代表一个参数,n为6时,printf("%.*f", n, a);相当于printf("%.6f", a);
初学者,见解不足,如有错误请指出