[기술 질문]#10_실수형의 문자열

(기술적 질문) #10_실수 문자열 변환

실수(float, double)를 문자열로 변환하는 방법을 살펴보겠습니다.


개요

  1. 매크로
  2. std::to_string 함수
  3. std::stringstream 객체 + str 함수

#0. 매크로

1. 매크로 표현

#include <iostream>
#include <string>
using namespace std;

#define STRING(num) #num

int main()
{
    string float_str(STRING(123.456));
    cout << float_str << endl;
    
    return;
}

세부

  • 전처리기 매크로를 사용하여 부동 소수점 숫자를 문자열로 변환할 수 있습니다.
  • 이 메서드는 리터럴 부동 소수점 숫자를 문자열로 변환하는 데만 사용할 수 있습니다!

#하나. std::to_string 함수

1. to_string 함수

#include <iostream>
#include <string>
using namespace std;

int main()
{
    float num = 123.456;
    string num_str = to_string(num);

    cout << num_str << endl;
    
    return;
}

세부

  • 헤더에 있는 것들 정의된 메서드 “to_string”은 다양한 숫자 데이터 유형을 “문자열” 유형으로 변환합니다.
  • 반환되는 문자열의 유효 자릿수가 0일 수 있으므로 정확한 결과 값이 반환되지 않을 수 있습니다.

#2. std::stringstream 객체 + str 함수

1. 스트링스트림 객체

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    float num = 123.456f;
    // stringstream 객체 선언
    stringstream sstream;
    // float 삽입
    sstream << num;
    // str() 호출
    string num_str = sstream.str();

    cout << num_str << endl;
    
    return;
}

세부

  • 먼저 Stringstream 객체를 선언합니다.
  • “<<"를 통해 Stringstream 개체에 float 변수를 삽입합니다.
  • 내장 함수 str()을 호출하여 문자열을 반환합니다.