「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ で文字列を double に変換する方法: `std::istringstream` と `std::stod` を使用する簡単なガイド

C++ で文字列を double に変換する方法: `std::istringstream` と `std::stod` を使用する簡単なガイド

2024 年 11 月 16 日に公開
ブラウズ:975

How to Convert Strings to Doubles in C  : A Simple Guide Using `std::istringstream` and `std::stod`

C で文字列を double に変換する

C では、文字列を double に変換するには、 std::istringstream 関数と std::stod 関数を使用します。

#include 

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;
}

この関数の仕組みは次のとおりです。

  1. 入力文字列 s から std::istringstream オブジェクト iss を作成します。
  2. >> 演算子を使用して、 iss からの double 値。
  3. 抽出が成功した場合は、double 値を返します。
  4. 抽出が失敗した場合 (文字列が数値ではない場合など)、0 を返します。
]

この関数は、許可されているすべてのゼロの文字列表現と非数値文字列を完全に区別できるわけではないことに注意してください。たとえば、次の文字列はすべてゼロとみなされます:

"0"
"0."
"0.0"

string_to_double 関数の使用法を示すテスト ケースをいくつか示します。

#include 

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;
}
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3