- std :: stod():它将字符串转换为双精度型。
句法:double stod( const std::string& str, std::size_t* pos = 0 ); double stod( const std::wstring& str, std::size_t* pos = 0 ); Return Value: return a value of type double Parameters str : the string to convert pos : address of an integer to store the number of characters processed. This parameter can also be a null pointer, in which case it is not used.
// CPP program to illustrate // std::stod() #include
#include int main(void) { std::string str = "y=4.4786754x+5.6"; double y, x, a, b; y = 0; x = 0; // offset will be set to the length of // characters of the "value" - 1. std::size_t offset = 0; a = std::stod(&str[2], &offset); b = std::stod(&str[offset + 3]); std::cout << b; return 0; } 输出:
5.6
另一个例子 :
// CPP program to illustrate // std::stod() #include
#include using namespace std; int main() { string b = "5"; double a = stod(b); int c = stoi(b); cout << b << " " << a << " " << c << endl; } 输出:
5 5 5
如果未执行转换,则将抛出invalid_argument异常。如果读取的值超出可表示值范围的两倍,则抛出out_of_range异常。无效的idx导致未定义的行为。
- std :: stof:它将字符串转换为浮点数。
句法:float stof( const string& str, size_t* pos = 0 ); float stof( const wstring& str, size_t* pos = 0 ); Parameters str : the string to convert pos : address of an integer to store the number of characters processed This parameter can also be a null pointer, in which case it is not used. Return value: it returns value of type float.
范例1:
// CPP program to illustrate // std::stof() #include
#include int main() { std::string x; x = "20"; float y = std::stof(x) + 2.5; std::cout << y; return 0; } 输出:
22.5
范例2:
// CPP program to illustrate // std::stof() #include
#include int main() { std::string str = "5000.5"; float x = std::stof(str); std::cout << x; return 0; } 输出:
5000.5
如果无法执行任何转换,则将抛出invalid_argument异常。
- std :: stold:它将字符串转换为long double。
句法:long double stold( const string& str, size_t *pos = 0 ); long double stold (const wstring& str, size_t* pos = 0); Parameters : str : the string to convert pos : address of integer to store the index of the first unconverted character. This parameter can also be a null pointer, in which case it is not used. Return value : it returns value of type long double.
范例1:
// CPP program to illustrate // std::stold() #include
#include int main() { std::string str = "500087"; long double x = std::stold(str); std::cout << x; return 0; } 输出:
500087
范例2:
// CPP program to illustrate // std::stold() #include
#include int main() { std::string x; x = "2075"; long double y = std::stof(x) + 2.5; std::cout << y; return 0; } 输出:
2077.5
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。