어림할 수와 ‘어느 자리까지 어림할지’를 입력해 주세요. 반올림, 올림, 버림과 특수한 어림 방식의 결과를 한꺼번에 보여 줍니다.
이 페이지에서 할 수 있는 것
- 수와 ‘어느 자리까지 어림할지’만 넣으면 반올림, 올림, 버림의 결과를 한꺼번에 알 수 있습니다
- 일의 자리(정수로 만들기)뿐 아니라 소수 둘째 자리, 십의 자리, 백의 자리 등 원하는 자리에서 어림할 수 있습니다
- 짝수 반올림(은행가 반올림), 바닥 함수, 천장 함수 등 컴퓨터와 통계에서 쓰는 어림 방식의 결과도 한눈에 확인할 수 있습니다
- 공식의 쉬운 해설과 Excel·Google 스프레드시트·Python용으로 복사해 쓸 수 있는 수식도 이 페이지에 모아 두었습니다
이 계산은 어디에 쓰일까요?
부가세 포함 39,800원인 상품의 공급가액은 \(39800 \div 1.1 = 36181.818\cdots\)원입니다. 1원 미만을 반올림하면 공급가액 36,182원·부가세 3,618원, 버림하면 공급가액 36,181원·부가세 3,619원이 됩니다.
1원 미만을 어떻게 처리할지는 사업자의 계산 방식에 따라 달라서, 내가 계산한 금액과 영수증의 부가세가 1원 달라도 틀린 것이 아니라 끝수 처리 방식의 차이입니다. 이것을 알면 영수증이나 세금계산서를 안심하고 확인할 수 있습니다.
국고금 관리법 제47조는 국고금을 받거나 내줄 때 10원 미만의 끝수는 계산하지 않는다고 정하고 있습니다. 예를 들어 계산한 세액이 123,456원이라면 일의 자리를 버림한 123,450원이 됩니다(이 계산기에서는 어림할 자리에 ‘-1’을 넣은 버림 결과).
고지서와 명세서의 금액은 이런 어림이 쌓여서 만들어지므로, 어림 방식을 알고 있으면 금액을 스스로 검산할 수 있습니다.
세 가지 선택지가 거의 3분의 1씩 나뉘면, 소수 첫째 자리까지 반올림했을 때 33.3% + 33.3% + 33.3% = 99.9%가 되어 합계가 100%가 되지 않습니다.
이것은 집계 실수가 아니라 어림하기의 숙명으로, 신문이나 뉴스의 그래프에도 ‘반올림으로 인해 합계가 100%가 되지 않을 수 있습니다’라는 주석이 붙어 있습니다. 어림하기를 알고 있으면 통계와 그래프를 바르게 읽을 수 있습니다.
폭 0.93 m 벽지로 길이 8.4 m의 벽을 바르는 데 필요한 폭 수는 8.4 ÷ 0.93 ≒ 9.03폭입니다. 사야 하는 것은 10폭입니다(9폭으로는 모자랍니다).
인원수에 맞는 테이블 수, 버스 대수, 약 상자 수처럼 ‘모자라면 곤란한 것’의 세계에서는 반올림이 아니라 올림이 정답입니다. 어떤 어림 방식을 고를지까지 포함해서 끝수 처리입니다.
‘딱 절반은 항상 올림’하는 반올림은 데이터가 많으면 합계나 평균을 조금 큰 쪽으로 치우치게 합니다. 예를 들어 0.5, 1.5, …, 9.5의 10개의 평균은 원래 5.0이지만, 먼저 반올림한 뒤 평균을 내면 5.5가 됩니다. 짝수 반올림이라면 올림과 버림이 반반이 되어 치우침이 상쇄되고, 평균은 5.0 그대로입니다.
그래서 이자 계산을 되풀이하는 금융의 세계나 많은 프로그래밍 언어의 소수 계산 내부(IEEE 754라는 규격)에서는 짝수 반올림이 표준입니다.
공식
용어·기호 해설
기호
| \(x\) | 엑스 | 어림할 수입니다. (예: 시험 평균 점수 81.35) |
| \(n\) | 엔 | 어림할 자리를 지정하는 수입니다. 0 = 일의 자리, 양수 = 소수점 아래 \(n\)번째 자리, 음수 = 십·백·천… 의 자리를 나타냅니다. (예: 백의 자리까지 어림하려면 \(n = -2\)) |
| \(q\) | 큐 | 어림의 단위입니다. 어림한 결과는 반드시 \(q\)의 배수가 됩니다. \(q = 10^{-n}\)이며, 소수 둘째 자리까지라면 \(0.01\), 백의 자리까지라면 \(100\)입니다. |
| \(R\) | 알 | 어림한 결과의 수입니다. 어림 방식(반올림, 올림, 버림 등)에 따라 값이 달라집니다. |
| \(\lfloor x \rfloor\) | 바닥 함수 엑스 | \(x\) 이하인 가장 큰 정수입니다. 양수에서는 ‘소수점 아래 버림’과 같습니다. (예: \(\lfloor 5.99 \rfloor = 5\)입니다. 단, 음수에서는 \(\lfloor -5.01 \rfloor = -6\)) |
| \(\lceil x \rceil\) | 천장 함수 엑스 | \(x\) 이상인 가장 작은 정수입니다. 양수에서는 ‘올림’과 같습니다. (예: \(\lceil 5.01 \rceil = 6\)입니다. 단, 음수에서는 \(\lceil -5.01 \rceil = -5\)) |
용어
| 어림하기 | 너무 자세한 자리(끝수)를 정해진 규칙으로 깔끔한 수로 고치는 것입니다. 반올림, 올림, 버림은 모두 어림하기의 한 종류이며, 끝수 처리라고도 합니다. |
| 어림수 | ‘약 1,900명’처럼 대략적인 수입니다. 초등학교 5학년의 ‘어림하기’ 단원에서 배우며, 어림수를 만드는 대표적인 방법이 반올림입니다. |
| 반올림 | 보는 자리의 숫자가 0~4(4 이하)이면 버림, 5~9(5 이상)이면 올림하는 어림 방식입니다. 딱 절반(2.5 등)은 반드시 올립니다(음수는 0에서 먼 쪽으로. −2.5 → −3). |
| 올림 | 끝수가 조금이라도 있으면 위의 자리로 하나 올리는 어림 방식입니다. 5.01을 정수로 올림하면 6이 됩니다. ‘모자라면 곤란한’ 상황(재료의 장수 등)에서 씁니다. |
| 버림 | 끝수를 모두 없애는 어림 방식입니다. 5.99를 정수로 버림하면 5가 됩니다. 세금의 10원 미만 끝수 처리처럼 돈을 다루는 상황에서 자주 쓰입니다. |
| 은행가 반올림(짝수 반올림) | 딱 절반일 때만 ‘결과가 짝수가 되는 쪽’으로 어림하는 방식입니다(2.5 → 2, 3.5 → 4). 항상 올리는 반올림과 달리 합계나 평균이 한쪽으로 치우치지 않아서, 통계·금융·컴퓨터 내부에서 표준으로 쓰입니다. Python의 round()도 이 방식입니다. |
| 바닥 함수 | \(\lfloor x \rfloor\)로 쓰며, \(x\) 이하인 정수 중 가장 가까운 정수(−∞ 방향)로 어림하는 수학의 함수입니다. 고등학교에서 배우는 가우스 기호 \([x]\)와 같습니다. 양수에서는 버림과 같지만, 음수에서는 방향이 반대가 되는 점이 일상의 버림과 다릅니다. |
| 천장 함수 | \(\lceil x \rceil\)로 쓰며, \(x\) 이상인 정수 중 가장 가까운 정수(+∞ 방향)로 어림하는 수학의 함수입니다. 양수에서는 올림과 같지만, 음수에서는 방향이 반대가 되는 점이 일상의 올림과 다릅니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘의미를 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
| 자릿값(초등학교 1~2학년, 6~8세) |
|
| 소수의 구조(초등학교 3~4학년, 8~10세) |
|
| 어림수와 반올림(초등학교 5학년, 10~11세) |
|
| 음수와 수직선(중학교 1학년, 12~13세) |
|
Excel로 계산하는 방법
| 어림할 수 x | 2.7 |
| 반올림한 결과 | =ROUND(B1,0) |
| 어림할 수 x | 5.01 |
| 올림한 결과 | =ROUNDUP(B1,0) |
| 어림할 수 x | 5.99 |
| 버림한 결과 | =ROUNDDOWN(B1,0) |
| 어림할 수 x | 1234.5678 |
| 어림할 자리 n(2 = 소수 둘째 자리, 0 = 일의 자리, -2 = 백의 자리) | -2 |
| 반올림한 결과 | =ROUND(B1,B2) |
ROUND, ROUNDUP, ROUNDDOWN의 두 번째 인수 ‘자릿수’는 이 페이지의 ‘어림할 자리’와 같은 뜻입니다(0 = 일의 자리, 2 = 소수 둘째 자리, -2 = 백의 자리).
Excel의 ROUND는 이 페이지의 반올림과 같이 ‘딱 절반은 0에서 먼 쪽으로’ 방식입니다. ROUNDUP과 ROUNDDOWN은 음수일 때 각각 0에서 먼 쪽, 0에 가까운 쪽으로 움직입니다(ROUNDUP(-5.01,0)은 -6).
예를 들어 첫 번째 표라면 B2에 3, 네 번째 표라면 B3에 1200이 표시됩니다.
Google 스프레드시트로 계산하는 방법
| 어림할 수 x | 2.7 |
| 반올림한 결과 | =ROUND(B1,0) |
| 어림할 수 x | 5.01 |
| 올림한 결과 | =ROUNDUP(B1,0) |
| 어림할 수 x | 5.99 |
| 버림한 결과 | =ROUNDDOWN(B1,0) |
| 어림할 수 x | 1234.5678 |
| 어림할 자리 n(2 = 소수 둘째 자리, 0 = 일의 자리, -2 = 백의 자리) | -2 |
| 반올림한 결과 | =ROUND(B1,B2) |
Python으로 계산하는 방법
from decimal import Decimal, ROUND_HALF_UP, ROUND_UP, ROUND_DOWN
number = Decimal("1234.5678") # 어림할 수(0.1 오차 문제를 피하려고 반드시 문자열로 넘깁니다)
digits = -2 # 어림할 자리(2 = 소수 둘째 자리, 0 = 일의 자리, -2 = 백의 자리)
unit = Decimal(1).scaleb(-digits) # 어림의 단위(digits가 -2이면 100)
rounded = number.quantize(unit, rounding=ROUND_HALF_UP) # 반올림(딱 절반은 0에서 먼 쪽으로)
rounded_up = number.quantize(unit, rounding=ROUND_UP) # 올림(0에서 먼 쪽으로)
rounded_down = number.quantize(unit, rounding=ROUND_DOWN) # 버림(0에 가까운 쪽으로)
print(f"반올림: {rounded:f}")
print(f"올림: {rounded_up:f}")
print(f"버림: {rounded_down:f}")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
R = ⌊x + 0.5⌋
R = \lfloor x + 0.5 \rfloor
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mo>⌊</mo>
<mi>x</mi>
<mo>+</mo>
<mn>0.5</mn>
<mo>⌋</mo>
</mrow>
</math>
R = |__ x + 0.5 __|
Floor[x + 0.5]
R := floor(x + 0.5);
R = floor(x + 0.5);
R = ⌊x + 0.5⌋
R = ⌈x⌉
R = \lceil x \rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mo>⌈</mo>
<mi>x</mi>
<mo>⌉</mo>
</mrow>
</math>
R = |~ x ~|
Ceiling[x]
R := ceil(x);
R = ceil(x);
R = ⌈x⌉
R = ⌊x⌋
R = \lfloor x \rfloor
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mo>⌊</mo>
<mi>x</mi>
<mo>⌋</mo>
</mrow>
</math>
R = |__ x __|
Floor[x]
R := floor(x);
R = floor(x);
R = ⌊x⌋
R = ⌊x ÷ q + 0.5⌋ × q
R = \left\lfloor \frac{x}{q} + 0.5 \right\rfloor \times q
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>R</mi>
<mo>=</mo>
<mo>⌊</mo>
<mfrac><mi>x</mi><mi>q</mi></mfrac>
<mo>+</mo>
<mn>0.5</mn>
<mo>⌋</mo>
<mo>×</mo>
<mi>q</mi>
</mrow>
</math>
R = |__ x/q + 0.5 __| xx q
Floor[x/q + 0.5] q
R := floor(x/q + 0.5) * q;
R = floor(x/q + 0.5) * q;
R = ⌊x/q + 0.5⌋ × q
ChatGPT 에게 물어서 계산하는 방법
당신은 수치 계산 도우미입니다. 다음 계산을 실제로 Python 코드를 실행해서 하고, 실행 결과의 수치만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). Python에 내장된 round()는 짝수 반올림이므로 쓰지 말고, decimal 모듈(ROUND_HALF_UP 등)을 써 주세요. 수 1234.5678을 백의 자리까지 다음 3가지 방법으로 어림해 주세요. 1. 반올림(딱 절반은 0에서 먼 쪽으로) 2. 올림(0에서 먼 쪽으로) 3. 버림(0에 가까운 쪽으로) 계산에 쓴 코드와 실행 결과의 수치를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다