📜  在 C++ 中设置精度(1)

📅  最后修改于: 2023-12-03 15:07:37.903000             🧑  作者: Mango

在 C++ 中设置精度

在 C++ 中,常常需要对数值进行精确的计算,这时候可以通过设置精度来控制数值的输出,本文将介绍在 C++ 中设置精度的方法。

使用 setprecision 函数

setprecision 函数可以设置输出流的精度,其函数原型如下所示:

#include <iostream>
#include <iomanip>
using namespace std;

ostream& setprecision (streamsize n);

其中,n 是要设置的精度。使用 setprecision 函数时,需要注意以下几点:

  • setprecision 函数的作用对象是输出流(ostream);
  • setprecision 函数只对接下来的输出有效,不会改变之前的输出精度;
  • setprecision 函数会四舍五入到指定精度。

下面是一个使用 setprecision 函数输出浮点数的例子:

double a = 1.23456789;
cout << setprecision(4) << a << endl;    // 输出 1.235
cout << setprecision(6) << a << endl;    // 输出 1.23457
使用 cout.precision 函数

除了使用 setprecision 函数外,还可以使用 cout.precision 函数来设置精度。cout.precision 函数的作用是设置流对象的精度,并返回之前的精度设置。其函数原型如下所示:

#include <iostream>
using namespace std;

streamsize precision() const;
streamsize precision (streamsize prec);

其中,precision 函数没有参数时返回当前流的精度,有参数时设置新的流精度,并返回之前的精度设置。

下面是一个使用 cout.precision 函数输出浮点数的例子:

double a = 1.23456789;
cout.precision(4);
cout << a << endl;    // 输出 1.235
cout.precision(6);
cout << a << endl;    // 输出 1.23457
使用 fixed 和 scientific 控制输出格式

除了设置精度外,还可以使用 fixed 和 scientific 控制输出格式。fixed 控制输出格式为固定小数位,scientific 控制输出格式为科学计数法。使用这两个控制符时需要包含头文件

下面是一个使用 fixed 和 scientific 控制输出格式的例子:

double a = 123456789.0;

// 输出格式为固定小数位
cout << fixed << setprecision(2) << a << endl;    // 输出 123456789.00

// 输出格式为科学计数法
cout << scientific << setprecision(2) << a << endl;    // 输出 1.23e+08
总结

本文介绍了在 C++ 中设置精度的三种方法,分别是使用 setprecision 函数、cout.precision 函数以及固定小数位和科学计数法输出格式。通过控制精度和输出格式,可以实现对数值计算结果的精确控制。