21xrx.com
2024-11-22 02:49:37 Friday
登录
文章检索 我的文章 写文章
C++如何分离整数和小数
2023-07-11 13:39:28 深夜i     --     --
C++ 分离 整数 小数 数字处理

在C++编程中,有时候需要将一个数分为整数和小数部分进行处理,下面介绍一种简单的方法。

首先,我们可以将这个数转换为字符串类型,然后利用字符串的成员函数来进行处理。我们可以使用stringstream将数转换为字符串:


#include <iostream>

#include <sstream>

#include <string>

int main()

{

  double num = 123.456;

  std::stringstream ss;

  ss << num;

  std::string str = ss.str();

  std::cout << str << std::endl;

  return 0;

}

上述代码中,我们先定义了一个double类型的数num,然后使用stringstream将其转换为字符串。ss.str()函数将stringstream对象ss中的内容转换为字符串类型,并赋值给字符串变量str。程序输出结果为“123.456”。

接下来,我们可以使用字符串的成员函数find()和substr()来将整数和小数部分分离出来。find()函数在字符串中查找指定的字符或字符串,如果找到就返回其位置。主要语法如下:


size_t find(const std::string& str, size_t pos = 0) const noexcept;

size_t find(const char* str, size_t pos = 0) const;

上述代码中,第一个参数为要查找的字符串或字符,第二个参数为指定在字符串中查找的起始位置。函数返回值为查找到的位置,如果查找失败则返回std::string::npos。

substr()函数用于截取字符串中的一部分,主要语法如下:


std::string substr(size_t pos = 0, size_t len = std::string::npos) const;

上述代码中,第一个参数为要截取字符串的起始位置,第二个参数为要截取的字符串长度。如果第二个参数不指定,则截取的字符串从起始位置一直到结尾。函数返回值为截取后的字符串。

下面是通过find()和substr()函数将整数和小数部分分离的代码:


#include <iostream>

#include <sstream>

#include <string>

int main()

{

  double num = 123.456;

  std::stringstream ss;

  ss << num;

  std::string str = ss.str();

  size_t pos = str.find(".");

  if (pos == std::string::npos)

    std::cout << "Not found" << std::endl;

    return 0;

  

  std::string int_part = str.substr(0, pos);

  std::string dec_part = str.substr(pos+1);

  std::cout << "Integer part: " << int_part << std::endl;

  std::cout << "Decimal part: " << dec_part << std::endl;

  return 0;

}

上述代码中,我们先使用find()函数找到小数点的位置,然后使用substr()函数将整数和小数部分分离出来,并输出结果。程序输出结果为:


Integer part: 123

Decimal part: 456

以上就是一种简单的方法来分离数的整数和小数部分的方法。通过字符串的成员函数,我们可以方便地对字符串进行操作,完成所需的任务。

  
  

评论区

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