21xrx.com
2025-06-11 19:51:35 Wednesday
文章检索 我的文章 写文章
C++中如何保留2位小数?
2023-07-12 21:43:34 深夜i     30     0
保留小数 C++ 精度

在C++中,保留2位小数可以通过不同的方法实现。本文将介绍几种最常用的方法以供参考。

一、使用iomanip库

iomanip库可以让程序员设置cout和cin对象的格式,从而在输出或读取时可以设置小数点位数。使用方式如下:

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

注意,在使用setprecision函数时需要使用fixed或scientific函数才能生效。在上面的程序中,使用了fixed函数来指定小数点后的位数为2,输出结果为1.23。同样地,可以使用scientific函数来指数表示法。

二、使用sprintf函数

sprintf函数的作用是将指定格式的字符串输出到指定的字符数组中。可以使用此函数将浮点数转化为指定位数的字符串,再将字符串转化为浮点数。使用方式如下:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
  double x = 1.23456789;
  char str[10];
  snprintf(str, 10, "%.2f", x);
  x = atof(str);
  cout << x << endl;
  return 0;
}

在上面的程序中,使用了snprintf函数将x转化为格式化的字符串,并设置小数点后的位数为2,输出结果为1.23。

三、使用math库

math库中提供了round函数,可以将浮点数四舍五入到指定小数位数,再输出。使用方式如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  double x = 1.23456789;
  x = round(x * 100) / 100.0;
  cout << x << endl;
  return 0;
}

在上面的程序中,将x乘以100后四舍五入再除以100,输出结果为1.23。

以上三种方法都是常用方法,可以根据具体情况选择使用。如果需要对多个浮点数保留2位小数,可以将以上方法封装成函数以方便使用。

  
  

评论区