안녕하세요 코딩하는 메추라기 케일입니다.
오늘은 제가 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 함수를 넣으시면 됩니다.
엄청나게 잘 되는 걸 보실 수 있습니다.
이번에는 반올림, 올림, 내림에 대해 알아봤습니다.
다음에는 절댓값, 제곱, 제곱근 함수에 대해 소개해드리겠습니다.
'코딩 > C++ 함수모음' 카테고리의 다른 글
C++ 타이머 2 (시간 받아오기) (0) | 2021.09.13 |
---|---|
C++ 기다리기 함수, 타이머(1) (0) | 2021.08.11 |
C++ 절댓값, 제곱, 제곱근, 세제곱근 함수 (0) | 2021.07.02 |
C++ 랜덤함수 쓰기, 랜덤함수 범위 정하기 (0) | 2021.06.24 |