std::setprecision
和 std::fixed
是 C++ 标准库 <iomanip>
中提供的两个操纵符,用于控制输出流(如 std::cout
)对浮点数的格式化输出。它们常被配合使用以实现对浮点数值精确到指定小数位数的输出。
std::setprecision
std::setprecision
是一个操纵符,用于设置输出流中浮点数的精度,即表示小数部分显示的位数。它接受一个整数参数 n
,指示输出时最多应显示的小数位数。请注意,这并不包括整数部分的位数,也不保证能完全精确地表示原始浮点数的所有有效数字,因为浮点数的内部表示可能存在舍入误差。
使用示例:
#include <iostream>
#include <iomanip>
int main() {
double value = 3.141592653589793238;
std::cout << "Default precision: " << value << std::endl;
std::cout << "Precision set to 5: " << std::setprecision(5) << value << std::endl;
std::cout << "Precision set to 10: " << std::setprecision(10) << value << std::endl;
return 0;
}
在这个例子中,std::setprecision
被用来改变每次输出 value
时的小数位数。第一个输出使用默认精度,通常为6位;第二个输出指定精度为5位,