C++ string to double
时间: 2024-09-14 18:01:21 浏览: 42
在C++中,将`string`类型转换为`double`类型通常可以使用标准库中的`std::stod`函数,该函数定义在`<string>`头文件中。`std::stod`尝试将字符串转换为`double`类型的浮点数。使用这个函数时,需要确保字符串的格式是符合浮点数表示的,否则会抛出一个`std::invalid_argument`异常。如果转换过程中字符串表示的数值超出了`double`的范围,则会抛出一个`std::out_of_range`异常。
下面是一个简单的示例代码,演示如何使用`std::stod`函数:
```cpp
#include <iostream>
#include <string>
#include <stdexcept>
int main() {
std::string str = "123.45";
try {
double num = std::stod(str);
std::cout << "转换成功,数值为: " << num << std::endl;
} catch(const std::invalid_argument& e) {
std::cerr << "错误:非法的字符串格式。" << std::endl;
} catch(const std::out_of_range& e) {
std::cerr << "错误:数值超出了double的表示范围。" << std::endl;
}
return 0;
}
```
在上面的代码中,首先包含了必要的头文件`<iostream>`、`<string>`和`<stdexcept>`。然后定义了一个`string`类型的变量`str`,并用一个合法的浮点数字符串初始化。使用`std::stod`进行转换,并用`try-catch`块捕获可能抛出的异常。
阅读全文