记得用include <bits/stdc++.h>
printf
输出
double x = 3.1415;
x = round(x * 10) / 10; // 将 x 四舍五入到一位小数
printf("%.1f\n", x); // 打印 x 保留一位小数
也可以写成
double x = 3.1415;
printf("%.1f\n", round(x * 10) / 10);
输出
3.1
显然,若要保留 n 位小数,则
double x = 11.4514
printf("%.nf\n", round(x * 10^n) / 10^n);
cout
输出
double x = 19.19
cout << fixed << setprecision(1) << x << endl;
输出:
19.2
同理,若需要保留 n 位小数,则
double x = 19.19810
cout << fixed << setprecision(n) << x << endl;
另外提一嘴,若要求输出的最小栏宽和左右对齐方式:
printf
输出:printf("%-6.1f", x);
表示:左对齐、最小栏宽为 6、显示 1 位小数。
cout
输出:
cout << setw(6) << x << endl; // 默认右对齐
cout << left << setw(6) << fixed << setprecision(1) << x << endl; // 指定左对齐
下面那行表示:左对齐、最小栏宽为 6、显示小数(而非指数)、(四舍五入)保留 1 位小数。