본문으로 건너뛰기
CalcMax

센트 단위 반올림 계산기

범위: -1,000,000,000 – 1,000,000,000

계산 결과

2.68

반올림한 값

센트
268

금액을 센트 단위로 반올림한다는 것은 소수 둘째 자리까지 자른다는 뜻이고, 꼭 반 센트인 금액은 0에서 먼 쪽으로 갑니다. 2.675는 2.68이 되고 0.005는 0.01이 됩니다. 이것은 거의 모든 돈 계산의 마지막 단계입니다. 단가에 수량을 곱하거나 소계에 요율을 적용한 값은 정확히 센트 단위로 떨어지는 일이 거의 없기 때문입니다. 올바르게 하는 일은 보기보다 어렵습니다. 순진한 방법은 100을 곱해 정수로 반올림한 뒤 다시 나누는 것인데, 사람들이 신경 쓰는 바로 그 금액에서 실패합니다. 1.005에 100을 곱하면 100.5가 아니라 100.49999999999999가 되므로 그 수는 1.00으로 내려가고 마지막 1센트가 조용히 사라집니다. 값을 소수 둘째 자리까지 인쇄하는 방법도 같은 이유로 같은 문제를 겪습니다. 같은 조금 작은 수를 보고 있기 때문입니다. 두 실패 모두 스스로를 알리지 않습니다. 출력은 지극히 평범해 보이는 금액이고, 알아차리는 유일한 길은 원래 답이 무엇이었는지 아는 것입니다. 이 페이지는 곱하는 대신 소수점을 텍스트로 옮겨서 그 함정을 피합니다. 그래서 반올림 판단이 정확한 값 위에서 내려집니다. 이 페이지는 금액을 정수 센트로도 보고하는데, 그 값을 계속 계산에 쓸 생각이라면 남겨 둘 만한 형태가 그것입니다. 결과는 각 언어가 돈을 적는 방식대로 적힙니다. 한국어 독자에게는 1,234.57로, 마침표가 소수점이고 쉼표가 천 단위입니다. 마지막 1센트만 다른 두 금액은 서로 다른 수로 돌아오고, 그것이 이 페이지의 요점입니다.

평범해 보이지만 반대로 반올림되는 네 금액

금액반올림한 값센트
2.6752.68268
1.0051.01101
0.0050.011
-0.005-0.01-1

여기 있는 모든 줄이 순진한 구현이 틀리는 금액이고, 각각 이유가 다릅니다. 2.675는 누구나 드는 예이고 100을 곱한 값이 정확히 267.5에 떨어지는 유일한 경우입니다. 그래서 나쁜 표본이자 좋은 경고입니다. 이 줄만 확인한 독자는 자기 코드가 일치하는 것을 보고 고칠 것이 없다고 결론 내리기 때문입니다. 1.005가 진짜 실패입니다. 100분의 1에는 정확한 이진 표현이 없어서 100을 곱하면 100.49999999999999가 나오고 눈에 보이는 두 방법이 모두 1.00이라고 답합니다. 0.005는 정확히 반 센트이고 0에서 먼 쪽으로 가는데, 양수에서는 올림과 같습니다. -0.005는 같은 금액에 부호가 붙은 것이고 두 규칙이 갈라서는 자리입니다. 음의 반을 양의 무한대로 반올림하면 음의 0이 나오고 -0.00으로 인쇄됩니다. 셋째 열이 나란히 붙어 있어서 각 줄이 한 금액의 두 가지 모습을 함께 보여 줍니다. 왼쪽은 소수 금액, 오른쪽은 정수 센트이고, 센트는 반올림한 금액에서 계산되므로 둘이 어긋날 수 없습니다.

공식

2.675 -> 2.68; 1.005 -> 1.01; 0.005 -> 0.01; -0.005 -> -0.01; cents = rounded * 100

value
반올림할 금액이고 -10억에서 10억까지입니다. 소수점 아래가 두 자리를 넘는 입력을 일부러 받습니다. 1.005와 2.675가 바로 이 페이지가 다루려는 값이고, 그것을 거부하는 입력은 자기가 존재하는 이유인 경우를 밀어내게 됩니다. 입력 칸은 소수 둘째 자리를 강제하지 않고, 강제해서도 안 됩니다. 이 페이지의 주제는 반올림 규칙이지 입력 형식이 아닙니다
rounded
소수 둘째 자리까지 반올림한 금액이고 결과의 첫 줄입니다. 텍스트가 아니라 수이기 때문에 각 언어의 소수점 기호와 천 단위 구분 기호로 적힙니다. 한국어에서는 1234.57이 1,234.57로 나옵니다. 일반 반올림 페이지와 이 부분이 다른 것은 의도된 것이고, 같은 입력에서 두 페이지가 갈리는 유일한 지점입니다
cents
같은 금액을 정수 센트로 적은 것이고, 첫 줄의 두 번째 표기가 아니라 별도의 출력입니다. 268은 더하고 나누고 셀 수 있는 정수이지만, 2.68은 무언가를 곱하는 순간 다시 부동소수점이 되는 소수입니다. 이 값은 원래 입력이 아니라 반올림한 금액에서 계산되므로 두 줄이 어긋날 수 없습니다. 1.005는 1.01 옆에 101을 주고, 1.01 옆에 100을 주는 일은 없습니다
0에서 먼 쪽으로
꼭 반 센트인 금액에 적용되는 규칙입니다. 0.005는 0.01로, -0.005는 -0.01로 갑니다. 올림과 0에서 먼 쪽으로 가기는 양수에서 일치하고 음수에서 갈리며, 그 차이가 값을 하는 자리가 바로 여기입니다. 순진한 정수 방법은 여기서 음의 0을 돌려주는데, 갚아야 할 금액으로 -0.00을 보여 주는 것은 옳지 않습니다
1.005 * 100 = 100.49999999999999
이 페이지가 세워진 실패입니다. 100분의 1은 이진수로 정확히 담기지 않으므로 100을 곱한 값이 반올림 경계 바로 아래에 떨어지고, 판단이 반대쪽으로 갑니다. 먼저 곱하는 모든 방법은, 그 뒤에 수를 반올림하든 소수 둘째 자리로 서식을 잡든, 그 오차를 물려받아 1.00이라고 답합니다. 대신 텍스트에서 소수점을 옮기면 값이 정확하게 남고 답이 1.01로 나옵니다. 부동소수점 오차가 조용히 1센트를 먹는 자리입니다
-0.005 -> -0.01
음수 반 센트이고 두 반올림 규칙이 갈라서는 경우입니다. 금액이 0보다 정확히 반 센트 아래에 있고, 규칙은 그것을 위가 아니라 0에서 먼 쪽으로 보내므로 -0.00이 아니라 -0.01이 됩니다. 음의 반을 양의 무한대로 반올림하면 부호가 붙은 0이 나오는데, 이는 -0.00으로 인쇄되어 계산이 일관되었는데도 반올림 오류처럼 읽힙니다

돈으로 끝나는 계산은 모두 여기서 끝납니다. 여러 사람이 나누는 계산서는 정수 센트로 떨어지는 일이 거의 없고 남은 1센트는 누군가에게 붙거나 반올림되어 사라져야 합니다. 소계에 적용한 세금이나 팁 요율은 돈이 가진 것보다 많은 소수 자리를 만들고, 단가에 수량을 곱해도 마찬가지입니다. 마지막에 반올림하는 것이 눈에 보이는 단계이지만 더 중요한 것은 중간에서 반올림하는 일입니다. 상환 일정표는 기간마다 잔액에 대한 이자를 계산해 그 이자를 센트 단위로 반올림한 뒤 다시 더합니다. 마지막에 한 번만 반올림하면 남은 소수 부분이 쌓이기 때문이고, 360기에 걸치면 그 표류가 몇 달러가 되어 마지막 잔액이 대출 기관의 것과 맞지 않게 됩니다. 반올림한 조각들로 합계를 만드는 모든 자리에서 같은 논리가 통합니다. 합계를 먼저 만들고 반올림하는 것이 아니라 조각을 먼저 반올림하고 더해야 합니다. 그런 작업에 남겨 둘 형태가 센트 개수입니다. 정수라서 끝까지 정확하게 남습니다. 화폐 반올림이 아니라 일반적인 소수 자릿수가 궁금한 경우에는 반올림 계산기가 열세 가지 자릿수를 한자리에서 다루고, 이 페이지는 돈이 쓰는 그 한 가지 자릿수를 산술이 틀릴 수 없는 규칙으로 다룹니다. 이 센트 단위 반올림 계산기가 필요한 자리에서는 규칙 하나와 그 규칙이 왜 필요한지가 함께 나옵니다.

계산 예시

  1. 기본 금액: 2.675

    1. 금액이 2.67과 2.68 사이에 있고 정확히 그 한가운데에 있습니다
    2. 반은 0에서 먼 쪽으로 가므로 답은 2.67이 아니라 2.68입니다
    3. 반올림한 금액에 100을 곱합니다. 2.68 × 100 = 268입니다
    4. 답은 2.68에 해당하는 금액이고 센트로는 268입니다

    누구나 떠올리는 예이고 그래서 여기서도 기본값입니다. 이 경우는 순진한 방법이 우연히 맞는 자리이기도 합니다. 2.675에 100을 곱한 값은 이진수에서 정확히 267.5에 떨어지지만 1.005는 그렇지 않습니다. 그래서 이 표본만 확인한 독자는 자기 코드와 이 페이지가 일치하는 것을 보고 풀어야 할 문제가 없다고 결론 내리게 됩니다. 차이를 보여 주는 것은 다음 예이고, 그래서 화면에는 이 금액을 먼저 두고 다른 금액을 아래에 두었습니다.

  2. 모두를 걸려 넘어지게 하는 금액: 1.005

    1. 금액이 1.00과 1.01 사이 정확히 한가운데에 있습니다
    2. 반은 0에서 먼 쪽으로 가므로 답은 1.01입니다
    3. 100을 곱하면 100.5가 아니라 100.49999999999999가 됩니다. 100분의 1에는 정확한 이진 표현이 없기 때문입니다
    4. 따라서 먼저 곱하는 방법은 내려가서 1.00이라고 답하고 1센트를 잃습니다
    5. 텍스트에서 소수점을 옮기면 값이 정확하게 남아 1.01이 나옵니다

    이 페이지가 존재하는 이유인 예입니다. 100을 곱하면 100.49999999999999가 나오는데, 이는 우연히 경계 아래로 간 것이 아니라 1.005가 이진수로 정확히 표현되지 않아 저장된 값이 실제 값보다 아주 조금 작기 때문입니다. 눈에 보이는 두 방법이 모두 그 오차를 물려받습니다. 곱한 수를 반올림해도 1.00이고 값을 소수 둘째 자리로 서식 잡아도 1.00인데, 둘 다 같은 조금 작은 수를 보고 있기 때문입니다. 출력에서 잘못된 점은 아무것도 보이지 않습니다. 1센트가 그냥 사라졌고, 알아차리는 유일한 길은 원래 답이 무엇이었는지 아는 것입니다. 이런 반 센트 금액은 돈 계산이 도착하는 바로 그 자리입니다. 요율을 홀수 단가에 적용하면 끊임없이 생기기 때문입니다.

  3. 소수 자리가 지나치게 많은 평범한 금액: 1234.5678

    1. 소수 첫째 자리와 둘째 자리가 56이고 그 뒤에 78이 옵니다. 반 센트보다 큽니다
    2. 따라서 둘째 자리가 올라갑니다. 1234.57입니다
    3. 100을 곱합니다. 1234.57 × 100 = 123457입니다
    4. 금액으로 쓰면 1,234.57이고 센트로는 123,457입니다

    특별할 것 없는 경우이고, 페이지가 함정만으로 채워지지 않도록 하나 넣어 두었습니다. 까다로운 일은 없습니다. 셋째 소수가 7이라 평범하게 올라가고 두 방법이 서로 일치합니다. 이 경우가 보여 주는 것은 서식이고, 그것이 독자가 가장 먼저 알아차리는 차이입니다. 한국어에서는 금액이 1,234.57로 돌아오는데, 쉼표가 천 단위를 묶고 마침표가 소수점입니다. 일반 반올림 페이지는 이 서식을 쓰지 않고 소수점을 고정하고 천 단위를 묶지 않으며, 같은 입력에서 두 페이지가 갈리는 곳이 바로 여기입니다.

  4. 0 아래의 반 센트: -0.005

    1. 금액이 0과 마이너스 1센트 사이 정확히 한가운데에 있습니다
    2. 반은 0에서 먼 쪽으로 가고, 여기서는 아래쪽을 뜻합니다. -0.01입니다
    3. 100을 곱하면 정확히 -0.5이므로 이 값은 깔끔하게 척도가 맞습니다
    4. 순진하게 -0.5를 정수로 반올림하면 음의 0이 나오고 -0.00으로 인쇄됩니다
    5. 텍스트에서 소수점을 옮기면 -1센트가 나오고 금액으로는 -0.01입니다

    두 반올림 규칙을 갈라놓는 경우입니다. 양수에서는 반을 올리는 것과 0에서 먼 쪽으로 보내는 것이 일치하므로 그 구분이 지나친 고집처럼 보입니다. 여기서는 갈라집니다. -0.5를 위로 반올림하면 음수 부호가 붙은 0이 나오고, 마이너스 0센트라는 금액은 누구에게도 보여 주어서는 안 되는 것입니다. 이 값은 척도도 깔끔하게 맞습니다. -0.005에 100을 곱하면 정확히 -0.5이기 때문입니다. 이진 표현의 실패가 부호에 대해 대칭이 아니므로, 시험할 금액 묶음에는 양수만이 아니라 음수도 필요합니다. 환불, 크레딧, 금액을 넘어서는 할인이 모두 여기에 도착합니다.

한계

금액은 -10억에서 10억까지의 수여야 하고, 반올림한 결과는 그 범위를 한 칸 벗어날 수 있습니다. 999999999.999는 정확히 10억으로 올라가고 그때 센트 출력은 1000억입니다. 그 크기에서도 출력이 정확한 것은 그만큼 큰 정수 센트가 아직 정수가 정확히 표현되는 범위 안에 있기 때문입니다. 반올림 규칙은 0에서 먼 쪽으로 가기이고 바꾸는 설정이 없습니다. 규칙을 고르게 하는 페이지라면 어느 나라 법원이 어느 규칙을 쓰는지까지 설명해야 했을 것입니다. 음수 금액은 올림이 아니라 0에서 먼 쪽으로 반올림되고, 둘은 꼭 반 센트인 경우에만 다릅니다. 이 페이지는 통화를 들고 다니지 않습니다. 금액이 몇 센트인지는 알지만 그 센트를 무엇이라고 부르는지는 모르므로 출력이 수이고 기호는 붙이는 사람 몫입니다. 한 번에 한 금액만 반올림하고, 합계를 사람들 사이에 나누거나 남은 센트를 배정하거나 일정표의 잔액을 맞추지는 않습니다. 아래 참고표는 입력을 따라가지 않고 네 개의 고정된 금액을 보여 주며, 표 안의 수는 지역화하지 않고 인쇄되므로 위의 결과 패널이 지역화하는 것과 달리 어느 언어에서든 2.675와 -0.005로 읽힙니다.

자주 묻는 질문

1.005는 왜 1.00이 아니라 1.01로 반올림되나요?
1.00과 1.01의 정확히 한가운데이고, 반에 대한 규칙이 금액을 0에서 먼 쪽으로 보내기 때문입니다. 이 답이 놀라워 보이는 것은 눈에 보이는 구현들이 대신 1.00을 돌려주기 때문입니다. 1.005에 100을 곱하면 100.5가 아니라 100.49999999999999가 나옵니다. 100분의 1은 이진수로 정확히 담기지 않고, 저장되는 값이 실제 값보다 아주 조금 작습니다. 그래서 먼저 곱하는 방법은, 그 뒤에 수를 반올림하든 소수 둘째 자리로 서식 잡든, 경계보다 살짝 아래에 있는 값을 보고 내려갑니다. 1센트는 요란하게 사라지지 않습니다. 출력은 평범해 보이는 금액입니다. 이 입력 하나가 여기에 한 줄짜리 공식이 아니라 페이지가 있는 이유입니다.
반을 올리나요, 짝수 쪽으로 가나요?
0에서 먼 쪽으로 갑니다. 양수에서는 위로, 음수에서는 아래로입니다. 거의 모든 현금 시스템이 그렇게 하고 사람이 가격을 반올림한다고 할 때 뜻하는 것도 그것이라서 2.5센트는 3이 되고 -2.5센트는 -3이 됩니다. 반을 짝수로 보내는 것이 다른 흔한 규칙이고, 긴 숫자 열을 더할 때 위로 표류하는 것을 막으려고 존재합니다. 통계와 일부 회계 작업에서 중요하고, 이 페이지가 하는 일은 그것이 아닙니다. 두 규칙은 정확한 반인 경우를 빼고 모든 금액에서 일치하므로, 지급액이 그런 값에 걸리기 전까지는 차이를 알아차리기 어렵습니다. 전환 설정이 없는 이유는, 설정이 있으면 어느 관할에서 어느 규칙을 쓰는지까지 설명해야 하기 때문입니다.
금액 말고 센트 개수도 보고하는 이유는 무엇인가요?
둘이 쓰임이 다르고, 끝까지 정확하게 남는 쪽이 정수이기 때문입니다. 268은 정수라서 다른 정수 센트에 더하고, 사람들 사이에 나누고, 수량을 곱하면서 아무 일도 없이 계속 계산할 수 있습니다. 2.68은 소수이고, 무언가를 곱하는 순간 여기서 피하려던 것과 같은 표현 문제를 안은 부동소수점 수로 돌아갑니다. 센트를 원래 입력이 아니라 이미 반올림한 금액에서 계산하는 이유도 같습니다. 따로 계산하면 1.005 같은 입력이 한 줄에는 1.01을, 다음 줄에는 100을 인쇄할 수 있고, 같은 패널의 두 수가 어긋나는 것은 어느 한쪽이 조금 틀린 것보다 나쁩니다.
결과에 왜 쉼표와 마침표가 쓰이나요?
돈은 읽는 사람의 언어가 적는 방식대로 적히고, 그 방식이 모든 언어에서 같지 않기 때문입니다. 영어는 센트 앞에 마침표를, 천 단위 사이에 쉼표를 넣어 1,234.57로 적습니다. 독일어와 유럽 대륙의 많은 언어는 반대로 합니다. 한국어는 영어와 같은 순서를 써서 마침표가 소수점이고 쉼표가 천 단위이며, 그래서 같은 금액이 1,234.57로 나옵니다. 이 페이지는 금액을 텍스트가 아니라 수로 보고하므로 서식이 읽고 있는 언어를 따라갑니다. 이 사이트의 일반 반올림 페이지는 일부러 그렇게 하지 않고, 소수점을 고정하고 천 단위를 묶지 않은 텍스트를 내놓습니다. 같은 입력에서 두 페이지가 진짜로 갈리는 곳이 바로 그 지점입니다.
센트 단위 반올림이 실제로 중요한 곳은 어디인가요?
조각들로 합계를 만드는 모든 곳입니다. 상환 일정표가 가장 또렷한 예입니다. 기간마다 남은 잔액에 대한 이자를 계산해 센트 단위로 반올림하고 다시 더하는데, 마지막에 한 번만 반올림하면 남은 분수가 쌓입니다. 360기에 걸치면 그 표류가 몇 달러가 되고 마지막 잔액이 대출 기관의 것과 맞지 않게 됩니다. 계산서를 나누는 일도 모양이 같습니다. 합계를 여러 사람이 나누면 정수 센트로 떨어지는 일이 거의 없고 남은 1센트는 어딘가로 가야 합니다. 금액에 요율을 적용하는 모든 일, 곧 세금과 팁과 할인도 돈이 가진 것보다 많은 소수 자리를 만듭니다. 가져갈 규칙은 조각을 먼저 반올림하고 반올림한 조각을 더하라는 것입니다.
이 페이지가 받는 가장 큰 금액은 얼마인가요?
양방향으로 10억이고, 반올림한 답은 그 범위를 한 칸 벗어날 수 있습니다. 999999999.999는 정확히 10억으로 올라가고 그때 센트 출력은 1000억입니다. 그 크기에서도 출력이 정확한 것은 그만큼 큰 정수 센트가 모든 정수가 정확히 표현되는 범위 안에 아직 들어 있기 때문이고, 상한은 정수가 근사되기 시작하는 지점보다 훨씬 아래입니다. 범위를 넘는 입력은 잘라 내지 않고 거부합니다. 적지도 않은 금액을 조용히 반올림하는 것이 거절보다 더 나쁜 답이기 때문입니다.

참고 문헌

관련 계산기