📅  最后修改于: 2023-12-03 14:54:05.772000             🧑  作者: Mango
在C++中,iomanip库中有一个很有用的函数叫做setprecision()。这个函数可以用来设置输出流中浮点数的小数位数。在本文中,我们将详细讲解setprecision()的用法,并给出一些示例。
首先,我们来看看setprecision()的函数声明:
#include <iomanip>
std::ios_base& setprecision(int n);
setprecision()函数的参数n表示要保留的小数位数,返回值类型为std::ios_base&。
下面是一个简单的使用setprecision()的示例,可以看到它是如何控制输出流中浮点数的小数位数的:
#include <iostream>
#include <iomanip>
int main()
{
double pi = 3.14159265358979323846;
std::cout << "pi = " << std::setprecision(5) << pi << std::endl; // pi = 3.1416
std::cout << "pi = " << std::setprecision(2) << pi << std::endl; // pi = 3.1
std::cout << "pi = " << std::setprecision(9) << pi << std::endl; // pi = 3.141592654
std::cout << "pi = " << std::fixed << std::setprecision(2) << pi << std::endl; // pi = 3.14
std::cout << "pi = " << std::scientific << std::setprecision(5) << pi << std::endl; // pi = 3.14159e+00
std::cout << "pi = " << std::setprecision(0) << std::fixed << pi << std::endl; // pi = 3
std::cout << "pi = " << std::setprecision(0) << std::scientific << pi << std::endl; // pi = 3e+00
return 0;
}
在上面的示例中,我们使用了不同的小数位数来控制输出流中的浮点数。我们还使用了两个控制符:std::fixed和std::scientific。std::fixed表示输出实数时要使用固定点小数格式,而std::scientific表示使用科学计数法格式。
setprecision()是一个非常有用的函数,可以用来控制输出流中浮点数的小数位数。通过参数n,我们可以设置要保留的小数位数。另外,我们还可以使用控制符std::fixed和std::scientific来控制输出格式。