C언어였다면 %.3lf (소수점 세 번째 자리까지 반올림), %.11lf(소수점 열 한번 째 자리까지 반올림)과 같이 표현하면 된다.
C++에서도 C언어와 같은 방식으로 반올림이 가능하지만, 다른 방법도 있다.
#include <iostream> //fixed를 사용
#include <iomanip> //setprecision을 사용
using namespace std;
// ... <중간 내용 이하 생략>
for(int i=0; i<test; i++){
cout << fixed << setprecision(3); //1. 4번째 자리에서 반올림하여 소수점 3번째까지 표현
cout << ans[i] << "%" << endl; // double형 배열을 각각 소수점 3번째까지 반올림
}
이 방법을 사용할 때 주의해야할 점은, float보다 double의 사용을 권장한다는 것이다.
float보다는 double이 정밀도가 훨씬 높기 때문이다.
#include <iostream>
#include <cmath> //round를 사용
// 중간 생략 ...
cout << round(x) << "\n"; // 2. 결국 int 값으로 표현하게 됨
cout << int(x+0.5) << "\n"; // 3. 마찬가지로 int 값으로 형변환이 이루어진다
제시된 3가지 방식을 사용하면
직관적인 방식으로 소수점 반올림이 가능하다
'👩🏻💻 Programming > C++' 카테고리의 다른 글
Find()와 Substr() (0) | 2020.02.10 |
---|---|
공백이 포함된 문자열 받기 (0) | 2020.02.10 |
아스키코드 (0) | 2020.02.09 |
While문과 EOF (0) | 2020.01.30 |
Cin과 Cout (0) | 2020.01.27 |