21xrx.com
2025-06-04 01:21:08 Wednesday
登录
文章检索 我的文章 写文章
如何在C++中保留两位小数?
2023-07-09 18:15:20 深夜i     39     0
C++ 浮点数 保留小数 输出格式 四舍五入

在C++中,保留两位小数是一种非常常见的操作,它可以用来精确表示一个数字的小数部分。下面是一些常用的方法来保留两位小数:

1. 使用cout输出时控制小数精度

在使用cout输出时,可以使用iomanip头文件中的setprecision方法来控制小数的精度。例如,下面的代码可以将变量num输出为两位小数:

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
  double num = 3.1415926;
  cout << fixed << setprecision(2) << num << endl;
  return 0;
}

其中,fixed是为了使得控制小数精度时使用的setprecision方法针对小数部分进行的,否则如果num本身的整数部分比较大,可能会使输出的数值不符合预期。

2. 使用sprintf函数

通过sprintf函数可以将一个数字转换为一个字符串,同时可以控制小数点后的位数。例如,下面的代码将变量num转换为一个字符串,保留两位小数:

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
  double num = 3.1415926;
  char str[20];
  sprintf(str, "%.2f", num);
  cout << str << endl;
  return 0;
}

其中,%.2f表示保留两位小数,可以根据需要调整数字2。

3. 使用stringstream类

stringstream是一个流类,它可以将不同类型的数据转换为字符串,同时可以实现控制小数点后的位数。例如,下面的代码将变量num转换为一个字符串,保留两位小数:

#include <iostream>
#include <string>
#include <sstream> 
using namespace std;
int main() {
  double num = 3.1415926;
  stringstream ss;
  ss.precision(2);
  ss << fixed << num;
  string str = ss.str();
  cout << str << endl;
  return 0;
}

其中,stringstream类中的precision方法可以设置小数部分的位数,而fixed方法可以使得控制小数精度时针对小数部分进行。最后将stringstream转换为string类型的字符串输出。

以上三种方法都可以实现保留两位小数的效果,可以根据情况选择适合的方式来使用。

  
  

评论区