[C++] to_string 숫자에서 문자열로 형 변환 방법 예제모음 int to string

코테를 준비하면서 문제를 풀 때 등 일반적으로 C++ 로 코딩하면서 가장 많이 접하게 되는 작업 중 하나가 문자열(string)과 숫자(int)사이에서의 형 변환이 아닐까 싶습니다.

stringstream을 사용한다거나 루프를 사용하는 등 다양한 형 변환 방법들이 있지만, 이 번 포스팅에서는 to_string 함수를 사용하여 숫자형을 string형으로 변환하는 방법에 대해 다루어 보겠습니다.

string형을 숫자형으로 변환하는 방법은 다음 포스팅을 참고해주세요.

먼저 함수들을 사용하기 위해 string 헤더파일을 잊지말고 include 해주세요.

#include <string>

to_string 함수 구문

해당 숫자형을 string 문자열로 변환합니다.

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);

매개변수

(필수사항) val: 문자열로 변환할 숫자입니다.

반환값

변환된 string 문자열입니다. 실수인 경우, 소수 6번째자리까지 표현합니다.

숫자형 -> string형 변환 예제

어떤 숫자형이든 to_string() 함수를 통해 string 문자열로 형 변환할 수 있습니다.

#include <cstring>
#include <iostream>
#include <string>

using namespace std;

int main() {
  // 정수
  int inum = 1234;
  long lnum = 1234;
  long long llnum = 1234;
  unsigned unum = 1234;
  unsigned long ulnum = 1234;
  unsigned long long ullnum = 1234;

  string sinum = to_string(inum);
  string slnum = to_string(lnum);
  string sllnum = to_string(llnum);
  string sunum = to_string(unum);
  string sulnum = to_string(ulnum);
  string sullnum = to_string(ullnum);

  cout << "int에서 변환: " << sinum << endl;
  cout << "long에서 변환: " << slnum << endl;
  cout << "long long에서 변환: " << sllnum << endl;
  cout << "unsigned에서 변환: " << sunum << endl;
  cout << "unsigned long에서 변환: " << sulnum << endl;
  cout << "unsigned long long에서 변환: " << sullnum << endl;

  // 실수
  float fnum = 1234.56f;
  double dnum = 1234.56;
  long double ldnum = 1234.56;

  string sfnum = to_string(fnum);
  string sdnum = to_string(dnum);
  string sldnum = to_string(ldnum);

  cout << "float에서 변환: " << sfnum << endl;
  cout << "double에서 변환: " << sdnum << endl;
  cout << "long double 변환: " << sldnum << endl;
}

결과값:

숫자형 string형 변환 예제 결과값

마무리

float에서 string 문자열로 변환한 결과값에서도 볼 수 있는 주의점은 부동 소수점 자료형(float, double, long double)의 변수가 가지는 정밀도(precision)입니다.

정밀도는 신뢰 가능한 표현 범위를 의미합니다. 따라서 자료형의 표현가능한 범위내 근사치가 됩니다.

출력 스트림에서 소수점 이하 값을 표현할 때 신뢰 가능한 수준은 float의 경우 6자리, double의 경우 14자리 정도입니다.

자세한 것은 다음 링크를 참고해주세요.

https://wikidocs.net/50833

답글 남기기