std:: setprecision
|
헤더 파일에 정의됨
<iomanip>
|
||
|
/*unspecified*/
setprecision
(
int
n
)
;
|
||
표현식에서 사용될 때
out
<<
setprecision
(
n
)
또는
in
>>
setprecision
(
n
)
는 스트림
out
또는
in
의
precision
매개변수를 정확히
n
으로 설정합니다.
목차 |
매개변수
| n | - | 정밀도를 위한 새로운 값 |
반환값
지정되지 않은 타입의 객체로서
-
만약
out
이
std::
basic_ostream
<
CharT, Traits
>
타입의 객체라면, 표현식
out
<<
setprecision
(
n
)
- 타입은 std:: basic_ostream < CharT, Traits > &
- 값은 out
- 마치 f ( out, n ) 을 호출한 것처럼 동작합니다
-
만약
in
이
std::
basic_istream
<
CharT, Traits
>
타입의 객체라면, 표현식
in
>>
setprecision
(
n
)
- 타입은 std:: basic_istream < CharT, Traits > &
- 값은 in
- 마치 f ( in, n ) 을 호출한 것처럼 동작합니다
함수 f 가 다음과 같이 정의되는 경우:
void f(std::ios_base& str, int n) { // 정밀도 설정 str.precision(n); }
예제
#include <iomanip> #include <iostream> #include <limits> #include <numbers> int main() { constexpr long double pi{std::numbers::pi_v<long double>}; const auto default_precision{std::cout.precision()}; constexpr auto max_precision{std::numeric_limits<long double>::digits10 + 1}; std::cout << "default precision: " << default_precision << '\n' << "maximum precision: " << max_precision << "\n\n" "precision: pi:\n"; for (int p{0}; p <= max_precision; ++p) std::cout << std::setw(2) << p << " " << std::setprecision(p) << pi << '\n'; std::cout << std::setprecision(default_precision); // 기본값 복원 }
출력:
default precision: 6 maximum precision: 19 precision: pi: 0 3 1 3 2 3.1 3 3.14 4 3.142 5 3.1416 6 3.14159 7 3.141593 8 3.1415927 9 3.14159265 10 3.141592654 11 3.1415926536 12 3.14159265359 13 3.14159265359 14 3.1415926535898 15 3.14159265358979 16 3.141592653589793 17 3.1415926535897932 18 3.14159265358979324 19 3.141592653589793239
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 183 | C++98 |
setprecision
는
std::ostream
또는
std::istream
타입의 스트림에서만 사용 가능 |
모든 문자 스트림에서
사용 가능 |
참고 항목
|
(C++11)
(C++11)
|
부동 소수점 입출력에 사용되는 서식을 변경합니다
(함수) |
|
부동 소수점 연산의 소수점 정밀도를 관리합니다
(
std::ios_base
의
public member function)
|