👩🏻‍💻 Programming/C++

C++ 소수점 반올림

한국의 메타몽 2020. 2. 2. 22:03

 

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