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