반응형
소프티어의 "성적 평균" 문제를 풀다가 "평균을 소수점 셋째 자리에서 반올림하여 표시" 하도록 요구되어 있었다.
printf에서는 "%.2f"엿던가..?
c++에서 iomanip 헤더에 있는 setprecision을 사용하면 소수점 반올림이 가능하다.
cout으로 출력을 낼 때는 다음 두가지 경우로 나누어 표현할 수 있다
✔ fixed를 안붙이는 경우
double a = 3.1415
cout<<setprecision(3)<<a<<endl;
//출력 : 3.14
fixed의 역할은 고정 소수점 표기를 해주는 것인데, 위처럼 fixed를 쓰지 않으면, setprecision(3)에 의해서 3번째 자리수에서 반 올림하고, 3.14로 출력된다.
만약 a가 3.000이었다면, 소수점이하의 값은 날라가서 3으로 출력된다.
✔ fixed를 붙이는 경우
double a = 3.1415
cout<<fixed<<setprecision(3)<<a<<endl;
//출력 : 3.142
fixed를 붙이면 3번 째 자리까지 반올림 된 값이 출력이 된다.
따라서 문제에서는 3번째 자리에서 반올림하여 둘째 자리까지 표시되도록 (3.00) 하였으므로, fixed를 붙이고 setprecision(2)로 하여 출력하였다.
반응형
'언어 > C++' 카테고리의 다른 글
[c++] printf 출력문에서 소수점 조정 출력 방법 (0) | 2023.12.10 |
---|---|
[c++] pair vector, vector sort 개념 정리 (0) | 2023.11.03 |
[c++] 2차원 배열 동적 할당 시 유의할 점 (0) | 2023.11.01 |
[c++] 입출력 스트림 시간 단축 방법 (cin, cout) (0) | 2023.11.01 |
[오류모음] 프로그래머스 LV1 <달리기 경주> c++ (0) | 2023.08.31 |