21xrx.com
2024-12-22 20:36:04 Sunday
登录
文章检索 我的文章 写文章
C++ 字符串转换成 double 的函数
2023-07-12 02:06:42 深夜i     --     --
C++ 字符串 转换 double 函数

C++程序中经常需要将字符串类型转换成数值类型,其中涉及到将字符串类型转换成double类型的函数。为了方便代码编写,C++标准库提供了一个函数stod()用于将字符串类型转换成double类型。

stod函数原型如下:

double stod(const string& str, [size_t* idx]);

其中str为需要进行转换的字符串,idx为可选参数,用来指示转换后字符串的第一个非数值字符的索引位置。

下面是一个实例程序:


#include <iostream>

#include <string>

#include <stdexcept>

int main()

{

  std::string str1 = "3.1415";

  std::string str2 = "31415e-4";

  std::string str3 = "pi";

  try

  {

    double num1 = std::stod(str1);

    double num2 = std::stod(str2);

    double num3 = std::stod(str3); // throw an exception

  }

  catch (const std::invalid_argument& ia)

  {

    std::cerr << "Invalid argument: " << ia.what() << '\n';

  }

  catch (const std::out_of_range& oor)

  {

    std::cerr << "Out of Range error: " << oor.what() << '\n';

  }

}

该例子中,首先给出三个字符串类型的数值,分别为"3.1415","31415e-4"和"pi"。接着分别使用stod函数将这些字符串转换成double类型的数值。

第一和第二个字符串转换成功,结果分别为3.1415和3.1415。第三个字符串转换失败,抛出一个invalid_argument类型的异常。

需要注意的是,使用stod函数进行字符串转换时,如果字符串不是一个合法的数值类型,就会抛出异常。因此,在代码中需要进行异常处理,以保证程序的正确运行。

  
  

评论区

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