std::fixed / std::scientific / std::hexfloat / std::defaultfloat

std::fixed / std::scientific / std::hexfloat / std::defaultfloat (부동소수점 표기 조작자)

부동소수점 출력의 기본 형식을 수정하는 조작자들이에요.

출처: cppreference

본문

<ios> 헤더에 정의돼 있어요.

// (1)
std::ios_base& fixed( std::ios_base& str );

// (2)
std::ios_base& scientific( std::ios_base& str );

// (3) C++11
std::ios_base& hexfloat( std::ios_base& str );

// (4) C++11
std::ios_base& defaultfloat( std::ios_base& str );

부동소수점 출력의 기본 형식을 수정해요.

    1. str.setf(std::ios_base::fixed, std::ios_base::floatfield)처럼 스트림 str의 floatfield를 fixed로 설정해요. 고정 소수점 표기.
    1. floatfield를 scientific으로 설정해요. 과학적 표기.
    1. floatfield를 fixed | scientific으로 설정해요. 16진수 부동소수점 표기(C++11).
    1. floatfield를 0으로 재설정해요. 기본 표기로 되돌림(C++11).

defaultfloat 이전의 기본값은 defaultfloat와 동등했어요. 이 조작자들은 형식화 입출력에서 써요.

예제

#include <iostream>

int main()
{
    double d = 123.456;
    std::cout << std::fixed << d << '\n';       // "123.456000"
    std::cout << std::scientific << d << '\n';  // "1.234560e+02"
    std::cout << std::defaultfloat << d << '\n'; // "123.456"
}

더 알아보기 (Learn more)

cppreference