21xrx.com
2024-05-19 12:45:09 Sunday
登录
文章检索 我的文章 写文章
C++实现纯小数转整数的方法
2023-06-22 01:00:27 深夜i     --     --
C++ 纯小数 整数 实现 方法

纯小数到整数的转换是在数学中经常出现的问题。在计算机编程领域中,C++实现纯小数到整数转换同样也很常见。本文将介绍一种简单且有效的C++实现纯小数到整数转换的方法。

方法一:

一个简单的方法是将小数转换为分数,然后找到分子和分母的最大公约数,并将分子和分母分别除以最大公约数以得到最简分数。最后,用最简分数的分子除以分母即可得到整数部分。

代码实现如下:

 c++

#include<bits/stdc++.h>

using namespace std;

int main(){

  double input;

  cin >> input;

  int mul = 1;

  while (input * mul - floor(input * mul) > 1e-9) mul *= 10;

  int number = input * mul;

  cout << number / __gcd(number, mul) << endl;

  return 0;

}

在这个解决方案中,我们使用一个while循环得到一个足够大的数字乘以原数的小数部分,然后我们将此数字除以整数部分后可得到小数点后的部分。计算最大公约数后即可得到整数部分。

方法二:

另一个方法是使用C++标准库的stream库函数。该函数仅在头文件中包含sstream>即可使用。

代码如下:

 c++

#include<bits/stdc++.h>

using namespace std;

int main(){

  double input;

  cin >> input;

  ostringstream strs;

  strs << input;

  string tmp = strs.str();

  int pos = tmp.find('.');

  cout << tmp.substr(0, pos) << endl;

  return 0;

}

这种方法使用ostringstream类来将浮点数转换为字符串,然后使用stringstream类来从此字符串中获取整数部分。我们在代码中使用find()函数来查找小数点的位置,然后使用substr()函数来截取整数部分。

结束语

通过本文,你应该已经了解了两种在C++中实现纯小数到整数转换的方法。这些方法基本上都是非常easy to use和快速的。如果你还有更多的问题,欢迎在下方评论区告诉我们。

  
  

评论区

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