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;
}
이 함수의 작동 방식은 다음과 같습니다.
이 함수는 허용되는 모든 문자열 표현인 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