setprecision
setprecision
是一个流操作符,用于设置输出的精度。精度可以理解为输出的有效数字的数量。其具体行为取决于是否与 fixed
或 scientific
一起使用。
-
如果单独使用
setprecision(n)
,那么它将设置输出的总的有效数字的数量。例如,setprecision(5)
将使得输出的总的有效数字的数量为 5 位。 -
如果与
fixed
或scientific
一起使用,那么setprecision(n)
将设置小数点后的数字的数量。例如,setprecision(3)
与fixed
一起使用时,将使得输出的小数点后的数字的数量为 3 位。
fixed
fixed
是一个流操作符,用于设置输出为定点格式(而不是科学计数法)。在定点格式中,小数点的位置是固定的,因此 setprecision(n)
将设置小数点后的位数。
scientific
scientific
是一个流操作符,用于设置输出为科学计数法格式。在科学计数法格式中,setprecision(n)
将设置小数点后的位数。
示例
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double num = 1234.56789;
// 使用 setprecision
cout << setprecision(5) << num << endl; // 输出: 1234.6
// 使用 setprecision 和 fixed
cout << setprecision(3) << fixed << num << endl; // 输出: 1234.568
// 使用 setprecision 和 scientific
cout << setprecision(3) << scientific << num << endl; // 输出: 1.235e+03
return 0;
}
在以上示例中,setprecision(5)
设置了输出的总的有效数字的数量为 5 位,setprecision(3)
与 fixed
一起使用时,设置了输出的小数点后的数字的数量为 3 位,setprecision(3)
与 scientific
一起使用时,设置了输出的小数点后的数字的数量为 3 位,并且以科学计数法的形式输出了结果。
注意,setprecision
会进行四舍五入。例如,在第一个例子中,最后一位数字 5 被四舍五入到了 6。