📜  std :: stod,std :: stof,std :: stold在C++中(1)

📅  最后修改于: 2023-12-03 15:20:20.905000             🧑  作者: Mango

C++中的stod、stof、stold

在C++中,可以使用stod、stof和stold函数将字符串转换为浮点数(double、float和long double类型)。

std::stod
double stod(const string& str, size_t* idx = 0);
double stod(const wstring& str, size_t* idx = 0);

std::stod函数将字符串转换为double类型的浮点数。其中,第一个参数为字符串,第二个参数为指向size_t的指针,该指针指向的值被设置为转换结束后的字符串下标位置(即未被转换的字符位置)。

下面是stod函数的示例代码:

#include <iostream>
#include <string>

using namespace std;

int main() {
  string str = "3.14";
  double d = std::stod(str);
  cout << "Double value of " << str << " is: " << d << endl;
  return 0;
}

上面的代码输出结果为:

Double value of 3.14 is: 3.14
std::stof
float stof(const string& str, size_t* idx = 0);
float stof(const wstring& str, size_t* idx = 0);

与std::stod函数类似,std::stof函数将字符串转换为float类型的浮点数。其中,第一个参数为字符串,第二个参数为指向size_t的指针,该指针指向的值被设置为转换结束后的字符串下标位置(即未被转换的字符位置)。

下面是stof函数的示例代码:

#include <iostream>
#include <string>

using namespace std;

int main() {
  string str = "3.14";
  float f = std::stof(str);
  cout << "Float value of " << str << " is: " << f << endl;
  return 0;
}

上面的代码输出结果为:

Float value of 3.14 is: 3.14
std::stold
long double stold(const string& str, size_t* idx = 0);
long double stold(const wstring& str, size_t* idx = 0);

与std::stod和std::stof函数类似,std::stold函数将字符串转换为long double类型的浮点数。其中,第一个参数为字符串,第二个参数为指向size_t的指针,该指针指向的值被设置为转换结束后的字符串下标位置(即未被转换的字符位置)。

下面是stold函数的示例代码:

#include <iostream>
#include <string>

using namespace std;

int main() {
  string str = "3.14";
  long double ld = std::stold(str);
  cout << "Long double value of " << str << " is: " << ld << endl;
  return 0;
}

上面的代码输出结果为:

Long double value of 3.14 is: 3.14

总之,stod、stof和stold函数可以方便地将字符串转换为浮点数,这在很多场景下都是非常有用的。