C では、std::istringstream 関数と std::stod 関数を使用して文字列を double に変換できます。
<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 で文字列を double に変換する方法 : `std::istringstream` と `std::stod` を使用する簡単なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。