在 C 中,可以使用 std::istringstream 和 std::stod 函数将字符串转换为双精度。
<code class="cpp">#include <sstream> double string_to_double(const std::string& s) { std::istringstream iss(s); double x; if (!(iss >> x)) { return 0; // Return 0 for non-numerical strings } return x; }</code>
此函数的工作原理如下:
请注意,此函数无法完全区分所有允许的零字符串表示形式和非数字字符串。例如,它将以下所有字符串视为零:
"0" "0." "0.0"
以下是一些测试用例来演示 string_to_double 函数的用法:
<code class="cpp">#include <cassert> int main() { assert(0.5 == string_to_double("0.5")); assert(0.5 == string_to_double("0.5 ")); assert(0.5 == string_to_double(" 0.5")); assert(0.5 == string_to_double("0.5a")); assert(0 == string_to_double("0")); assert(0 == string_to_double("0.")); assert(0 == string_to_double("0.0")); assert(0 == string_to_double("foobar")); return 0; }</code>
以上是如何在 C 中将字符串转换为双精度数:使用 `std::istringstream` 和 `std::stod` 的简单指南的详细内容。更多信息请关注PHP中文网其他相关文章!