std::stod:“123.456”-> 123.456
std::stod 是 C++ 标准库中一个用于将字符串转换为 double 类型的函数。它属于 <string> 头文件中的函数,通常用于将包含数字的字符串转换为相应的浮点数值。
函数原型
double stod(const std::string& str, std::size_t* pos = nullptr);
参数
str:要转换的字符串,应该表示一个有效的浮点数。pos(可选):指向std::size_t类型的指针,用于存储转换后第一个未处理字符的位置。如果不需要此功能,可以传递nullptr。
返回值
返回转换后的 double 值。如果转换失败(例如字符串不代表有效的浮点数),则会抛出 std::invalid_argument 异常。如果转换的值超出了 double 的表示范围,可能会抛出 std::out_of_range 异常。
示例
#include <iostream>
#include <string>
int main() {
std::string str = "3.14159";
try {
double value = std::stod(str);
std::cout << "Converted value: " << value << std::endl; // 输出 "Converted value: 3.14159"
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what() << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Out of range: " << e.what() << std::endl;
}
return 0;
}
注意事项
-
异常处理:使用
std::stod时要注意异常处理,确保处理可能出现的错误。 -
空字符串:如果输入字符串为空,将抛出
std::invalid_argument。 -
字符位置:如果使用
pos参数,它将被设置为转换后未处理字符的索引位置,这在需要进一步处理时很有用。
std::stod 是在需要将字符串转换为浮点数时的常用工具,提供了简单且安全的转换方式。

浙公网安备 33010602011771号