English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ String(문자열)과 float/double(실수) 간의相互 변환

이 튜토리얼에서는 예제를 통해 문자열을 실수로 변환하는 방법과 반대로 변환하는 방법을 배우겠습니다.

C ++문자열과 실수 및 두배의 실수 변환

문자열을 실수로 변환하는 가장 간단한 방법은 다음과 같습니다.C ++ 11함수:

  • std :: stof() - string을 float로 변환하다

  • std :: stod() - string을 double로 변환하다

  • std :: stold() - string을 long double로 변환하다

이 함수들은 string 헤더 파일에서 정의되어 있습니다.

예제1:C ++문자열을 실수와 두배의 실수로 변환하다

#include<iostream>
#include<string>
int main() {
    std::string str = "123.4567";
    // 문자열을 실수로 변환하다
    float num_float = std::stof(str);
    // 문자열을 더블 실수 double로 변환합니다
    double num_double = std::stod(str);
   std::cout << "num_float = " << num_float << std::endl;
   std::cout << "num_double = " << num_double << std::endl;
    return 0;
}

출력 결과

num_float = 123.457
num_double = 123.457

예제2:C ++ char 배열을 double로 변환합니다

char 배열을 double로 변환할 수 있는 std::atof() 함수를 사용할 수 있습니다.

#include<iostream>
// atoi()는 cstdlib 필요
#include<cstdlib>
int main() {
    // 문자 배열을 선언하고 초기화합니다
    char str[] = "123.4567";
    double num_double = std::atof(str);
    std::cout << "num_double = " << num_double << std::endl;
    
    return 0;
}

출력 결과

num_double = 123.457

C ++실수와 더블 실수를 문자열로 변환합니다

사용할 수 있습니다. ++ 11 std :: to_string() 함수는 float와 double을 문자열로 변환합니다. 오래된 C ++컴파일러에서는 std :: stringstream 객체를 사용할 수 있습니다.

예제3:to_string()를 사용하여 실수와 더블 실수를 문자열로 변환합니다

#include<iostream>
#include<string>
int main() {
    float num_float = 123.4567F;
    double num_double = 123.4567;
    std::string str1 = std::to_string(num_float);
    std::string str2 = std::to_string(num_double);
   std::cout << "Float 转换为 String = " << str1 << std::endl;
   std::cout << "Double 转换为 String = " << str2 << std::endl;
    return 0;
}

출력 결과

Float 转换为 String = 123.456703
Double 转换为 String = 123.456700

예제4:stringstream을 사용하여 실수와 더블 실수를 문자열로 변환합니다

#include<iostream>
#include<string>
#include<sstream> // stringstream을 사용하여
int main() {
    float num_float = 123.4567F;
    double num_double = 123.4567;
  
    // stringstream 객체를 생성합니다
    std::stringstream ss1;
    std::stringstream ss2;
  
    // num_float의 값을 ss에 할당합니다1
    ss1 << num_float;
  
    // num_float의 값을 ss에 할당합니다2
    ss2 << num_double;
     //ss를 사용하여1과 ss2의 값을 두 개의 문자열 변수로 초기화합니다
     //그런 다음 str() 함수를 사용하여 문자열 형식으로 변환합니다
    std::string str1 = ss1.str();
    std::string str2 = ss2.str();
  
    std::cout << "Float 转换为 String = " << str1 << std::endl;
    std::cout << "Double 转换为 String = " << str2 << std::endl;
    return 0;
}

출력 결과

Float 转换为 String = 123.457
Double 转换为 String = 123.457

관련 변환: C ++문자열을 int로 변환