Posts 실수를 스트링으로 변환할 때 포맷 지정하기
Post
Cancel

실수를 스트링으로 변환할 때 포맷 지정하기

Headers


1
2
3
#include <iostream>
#include <sstream>
#include <iomanip>


Cout Format


  • 출력하기 전에 std::cout << std::fixed << std::setprecision() 호출
1
2
3
4
5
6
7
8
9
// 소수 첫째 자리에서 반올림
std::cout << std::fixed << std::setprecision(0);
std::cout << 12.345f << std::endl;
std::cout << 123.456f << std::endl;

// 소수 둘째 자리에서 반올림
std::cout << std::fixed << std::setprecision(1);
std::cout << 12.345f << std::endl;
std::cout << 123.456f << std::endl;


  • 결과
1
2
3
4
12
123
12.3
123.5


String Format


  • stringstream 이용
1
2
3
4
5
std::stringstream ss;
ss << std::fixed << std::setprecision(2) << 12.345f;

std::string str = ss.str();
std::cout << str << std::endl;


  • 함수화
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::string toStringFormat(float value, int precision)
{
    std::stringstream ss;
    ss << std::fixed << std::setprecision(precision) << value;
    return ss.str();
}

void main()
{
    std::cout << toStringFormat(1.2345f, 0) << std::endl;
    std::cout << toStringFormat(12.345f, 0) << std::endl;
    std::cout << toStringFormat(123.45f, 0) << std::endl
    std::cout << toStringFormat(1234.5f, 0) << std::endl;
}


References


This post is licensed under CC BY 4.0 by the author.