\

코딩/C++ 함수모음

C++ 소숫점 n번째 자리까지 반올림, 올림, 내림하기

코딩하는 메추라기 2021. 6. 25. 10:01
반응형

안녕하세요 코딩하는 메추라기 케일입니다.

오늘은 제가 C++에서 반올림, 올림, 내림 함수에 대해 소개해 드릴려고 합니다.

일단 반올림, 올림, 내림 함수를 쓰려면 <cmath> 라는 헤더 파일이 필요합니다.

 

#include <iostream>
#include <cmath>

cmath 헤더파일이 있어야 원하는 반올림, 올림, 내림 함수를 쓸 수 있습니다.

 

그럼 반올림, 올림, 내림 함수는 무엇일까요?

첫번째로 올림

올림은 ceil함수를 씁니다.

ceil() 괄호안에다가 올림하고 싶은 수를 씁니다.

 

#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int a;
    int b;
    
    a = ceil(5.1);
    b = ceil(2.8);
    
    cout<<"a는 "<<a<<", b는 "<<b;
}

실행시키면

엄청 잘 되는 모습을 보실 수 있습니다.

 

이제 모든 ceil을 내림 함수로 바꿔보겠습니다.

내림 함수는 floor 입니다.

#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int a;
    int b;
    
    a = floor(5.1);
    b = floor(2.8);
    
    cout<<"a는 "<<a<<", b는 "<<b;
}

실행시켜 보도록 하겠습니다.

 

내림이 잘 되는 모습을 보실 수 있습니다.

그렇다면 마지막으로 반올림 함수는 무엇일까요?

반올림 함수는 round 입니다.

#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int a;
    int b;
    
    a = round(5.1);
    b = round(2.8);
    
    cout<<"a는 "<<a<<", b는 "<<b;
}

실행시켜 보면

엄청 잘 되는 걸 보실 수 있습니다.

 

그래서 이번 글이 끝나는 줄 알았는데...

 

 

 

 

 

 

 

 

이보슈

당신 제목에 "C++ 소숫점 n번째 자리까지 반올림, 올림, 내림하기" 라고 해놓고선

왜 소숫점 몇째 자리까지 반올림, 올림, 내림하는 법을 안알라줘욥!!

 

이러는 댓글이 있을 수 있기 때문에

친절히(?) 다 알려드리도록 하겠습니다.

암튼

암튼 암튼

암튼 암튼 암튼

 

 

가장 많이 쓰는 반올림 함수로 소숫점 n번째 자리까지 반올림하는 법을 알려드리겠습니다.

그냥 round함수를 쓰시면

정수 부분까지 반올림 합니다.

그니까 무슨 말이냐면

 

#include <iostream>
#include <cmath>

using namespace std;

int main() {
	int a;
    int b;
    
    a = round(8.29);
    b = round(1.959);
    
    cout<<"a는 "<<a<<", b는 "<<b;
}

이렇게 하고 실행을 하면

 

그냥 소숫점부분이 증발해 버립니다.

소수 n번째 자리까지 반올림하는 방법을 알려드리겠습니다.

 

8.159라는 숫자를 반올림해 보겠습니다.

반올림을 하면 8.2가 나와야 겠죠

그럼 소숫점 첫번째자리 숫자 이전 수들은 다 없어져야 합니다.

8.159란 수를 10배를 해서

반올림을 한 다음 다시 10으로 나누면

반올림이 됩니다.

 

이게 

1. 8.159 × 10 -> 81.59

2. round(81.59) -> 82(소숫점 자리들 다 사라짐 *증발*)

3. 82 ÷ 10 = 8.2

 

원하는 결과가 잘 나오죠?

 

그래도

코드를 보여주자면

변수의 자료형을 double으로 해야 변수 안에 실수를 넣을 수 있습니다.

 

이제 소수점 2번째 자리, 3번째 자리까지 아주아주 쉽게 할 수 있겠죠?

 

 

혹시 모르니까

그냥 여따 추가해 볼게요

소수점 2번째 자리까지 반올림은

수를 100배 한다음 반올림 후 나누기 100

3번째 자리까지는

수를 1000배 한다음 반올림 후 나누기 1000

 

버림과 올림은 반올림함수 round 대신 각각 floor, ceil 함수를 넣으시면 됩니다.

엄청나게 잘 되는 걸 보실 수 있습니다.

 

 

 

이번에는 반올림, 올림, 내림에 대해 알아봤습니다.

다음에는 절댓값, 제곱, 제곱근 함수에 대해 소개해드리겠습니다.