21xrx.com
2024-12-22 22:13:30 Sunday
登录
文章检索 我的文章 写文章
C++如何取小数点后两位
2023-07-07 11:28:18 深夜i     --     --
C++ 小数点 两位

在C++语言中,有时我们需要对数字进行精确的小数计算,而需要保留小数点后的指定位数。取小数点后两位可以使用以下两种方法:

1. 使用iostream库中的setprecision函数

setprecision()函数可以设置浮点数的输出精度,从而控制小数点后的位数。我们可以使用它来设置小数点后两位的精度。具体实现代码如下:


#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

  double num = 1.23456789; 

  cout<< fixed << setprecision(2) << num << endl;//保留小数点后两位

  return 0;

}

运行结果为1.23,即小数点后只保留两位。

2. 使用字符串流stringstream

我们可以使用stringstream将浮点数先转换成字符串,然后截取字符串中小数点后两位,最后将其转化为浮点数。具体实现代码如下:


#include <iostream>

#include <string>

#include <sstream>

using namespace std;

double roundToTwoDecimals(double n)

{

  stringstream stream;

  stream << fixed << n; //将浮点数转为字符串

  string s = stream.str(); //读取转换后的字符串

  int dotPos = s.find("."); //查找小数点位置

  if (dotPos == string::npos) //如果没有小数点

    return n;

  if (s.size() < dotPos + 3) //小数点后不足两位的,直接返回

    return n;

  string result = s.substr(0, dotPos + 3); //从小数点位置开始取两位数据

  return stod(result); //转为浮点数输出

}

int main()

{

  double num = 1.23456789; 

  cout<< roundToTwoDecimals(num) << endl;//保留小数点后两位

  return 0;

}

运行结果也为1.23,同样只保留小数点后两位。

总的来说,以上两种方法都可以取小数点后两位,可以根据实际情况进行选择和使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复