📅  最后修改于: 2023-12-03 15:20:20.905000             🧑  作者: Mango
在C++中,可以使用stod、stof和stold函数将字符串转换为浮点数(double、float和long double类型)。
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
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
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函数可以方便地将字符串转换为浮点数,这在很多场景下都是非常有用的。