> 백엔드 개발 > C++ > 본문

숫자가 아닌 입력을 처리하는 동안 C에서 문자열을 Double 값으로 변환하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-10-31 08:07:29
원래의
926명이 탐색했습니다.

How Can I Convert Strings to Double Values in C   while Handling Non-Numerical Inputs?

C에서 문자열을 Double 값으로 변환

문제 설명:

문자열 표현 변환 숫자를 부동 소수점 double 값으로 변환합니다. 문자열이 숫자가 아니면 0을 반환합니다.

해결책:

C에서 문자열을 double 값으로 변환하려면 std::stod 함수를 사용할 수 있습니다. , 문자열 매개변수를 가져와 이를 double로 변환합니다. 그러나 이 함수는 숫자가 아닌 문자열에 대해 0을 반환하지 않습니다.

비숫자 처리를 위한 사용자 정의 함수:

이 문제를 해결하기 위해 사용자 정의 함수를 만들 수 있습니다. 숫자가 아닌 문자열에 대해서는 0을 반환합니다. 구현은 다음과 같습니다.

<code class="cpp">#include <sstream>

double string_to_double(const std::string& s) {
  std::istringstream i(s);
  double x;
  if (!(i >> x)) {
    return 0;
  }
  return x;
}</code>
로그인 후 복사

이 함수는 std::istringstream을 사용하여 문자열에서 double 값을 추출합니다. 추출에 실패하면 0을 반환합니다.

사용 예:

다음은 string_to_double 함수 사용의 몇 가지 예입니다.

<code class="cpp">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("foobar"));</code>
로그인 후 복사

숫자가 아닌 0에 관한 참고 사항:

이 함수는 숫자가 아닌 모든 문자열을 0과 구별할 수 없다는 점에 유의하는 것이 중요합니다. 예를 들어, 이 구현에 따르면 다음 문자열은 모두 0으로 간주됩니다.

  • "0"
  • "0."
  • "0.0"
  • " 0"
  • "-0"

위 내용은 숫자가 아닌 입력을 처리하는 동안 C에서 문자열을 Double 값으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿