"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 문자열을 Double로 변환하는 방법: `std::istringstream` 및 `std::tod`를 사용한 간단한 가이드

C++에서 문자열을 Double로 변환하는 방법: `std::istringstream` 및 `std::tod`를 사용한 간단한 가이드

2024년 11월 16일에 게시됨
검색:312

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

C에서 문자열을 Double로 변환

C에서는 std::istringstream 및 std::stod 함수를 사용하여 문자열을 double로 변환할 수 있습니다.

#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. 추출에 실패하면 double 값을 반환합니다. (예: 문자열이 숫자가 아님), 0을 반환합니다.

이 함수는 허용되는 모든 문자열 표현인 0과 숫자가 아닌 문자열을 완전히 구별할 수 없다는 점에 유의하세요. 예를 들어 다음 문자열은 모두 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