파이썬에서 값을 소수점 두 자리까지 반올림하려면 어떻게 해야 할까요? 다행히 파이썬은 숫자를 반올림할 수 있는 여러 기능을 기본적으로 제공합니다.
숫자를 소수점 두 자리로 반올림해야 하는 이유
숫자를 소수점 두 자리로 반올림하는 일은 실무에서 매우 흔합니다. 금액은 소수점 두 자리까지만 사용되므로, 세 번째 소수 자리가 포함된 금전 값을 처리하고 싶지 않을 것입니다. 무게 역시 보통 소수점 두 자리로 표현되며, 그 이상의 정밀도는 대부분의 경우 불필요합니다.
이 글에서는 파이썬에서 숫자를 소수점 두 자리로 반올림하는 두 가지 방법을 예제 코드와 함께 자세히 살펴보겠습니다.
방법 1: round() 함수로 반올림하기
친구들과 저녁 식사를 했을 때 각 친구가 얼마씩 부담해야 하는지 계산하는 프로그램을 작성해야 한다고 가정해 보겠습니다. 먼저 사용자에게 식사 비용과 함께한 친구 수를 입력받습니다:
meal_cost = input("식사 비용은 얼마인가요? ")
friends = input("함께한 친구는 몇 명인가요? ")
다음으로, 각 친구가 저녁 식사비로 얼마를 부담해야 하는지 계산합니다. 누가 무엇을 주문했든 모든 친구가 똑같은 금액을 부담한다고 가정합니다:
cost_per_friend = float(meal_cost) / float(friends)
"meal_cost"와 "friends"를 모두 부동소수점 숫자(float)로 변환했습니다. input() 메서드는 문자열을 반환하기 때문입니다. 문자열 값에는 파이썬의 산술 연산자로 수학적 계산을 수행할 수 없습니다.
이제 이 값을 소수점 두 자리로 반올림해 보겠습니다. round() 메서드를 사용하면 값을 가장 가까운 정수 또는 지정한 소수점 자리로 반올림할 수 있습니다.
그리고 각 친구가 부담해야 하는 금액을 콘솔에 출력합니다:
rounded_value = round(cost_per_friend, 2)
print("각 친구는 저녁 식사비로 $" + str(rounded_value) + "를 내야 합니다.")
내장 함수 round()를 사용해 "cost_per_friend" 값을 소수점 두 자리로 반올림했습니다. 그다음 문자열 연결(concatenation)로 콘솔에 출력할 메시지를 만들어, 각 친구가 저녁 식사비로 얼마를 내야 하는지 알려줍니다.
코드를 실행해 결과를 확인해 보겠습니다:
식사 비용은 얼마인가요? 64.92 함께한 친구는 몇 명인가요? 6 각 친구는 저녁 식사비로 $10.82를 내야 합니다.
만약 64.92를 6으로 나눈 값을 반올림하지 않았다면 소수점 아래 자릿수가 매우 긴 숫자를 보게 되었을 것입니다. 위 코드는 나눗셈 결과를 소수점 두 자리로 반올림하여 각 친구가 $10.82씩 부담해야 함을 깔끔하게 계산해 줍니다.
방법 2: 문자열 포매팅으로 반올림하기
숫자의 용도가 단순히 문자열에 표시하는 것이라면 다른 방법으로 반올림할 수도 있습니다. 이 방법은 파이썬 3.x에서만 지원됩니다.
.format() 문자열 포매팅 문법을 사용해 각 친구가 부담할 금액을 반올림하도록 코드를 수정해 보겠습니다. 먼저 각 친구가 얼마를 부담해야 하는지 계산합니다:
meal_cost = input("식사 비용은 얼마인가요? ")
friends = input("함께한 친구는 몇 명인가요? ")
cost_per_friend = float(meal_cost) / float(friends)
다음으로, 각 친구가 저녁 식사비로 얼마를 내야 하는지 알려주는 print() 문을 작성합니다. .format() 문을 print() 문과 함께 사용하면 문자열 안의 값을 원하는 형식으로 지정할 수 있습니다:
print("각 친구는 저녁 식사비로 ${:0.2f}를 내야 합니다.".format(cost_per_friend))
.format() 문은 다음 문법으로 소수점 두 자리로 반올림된 숫자 표현을 만듭니다:
{:0.2f}
각 요소의 의미는 다음과 같습니다:
- 콜론(:): 값을 형식화(formatting)하겠다는 것을 코드에 알려줍니다.
- 0: 0으로 채워질 수 있는 숫자를 다룬다는 것을 파이썬에 알려줍니다.
- .2: 숫자를 소수점 두 자리로 반올림하라고 지시합니다.
- f: 값을 부동소수점 숫자로 표시하겠다는 의미입니다.
코드를 실행해 결과를 확인해 보겠습니다:
식사 비용은 얼마인가요? 64.92 함께한 친구는 몇 명인가요? 6 각 친구는 저녁 식사비로 $10.82를 내야 합니다.
코드가 각 친구가 부담해야 할 저녁 식사비를 성공적으로 계산했습니다. 결과는 첫 번째 예제와 동일하며, 소수점 아래 두 자리가 표시되어 숫자가 소수점 두 자리로 반올림되었음을 확인할 수 있습니다.
단순히 값을 콘솔에 출력하기만 하면 되는 경우라면 이 방법이 첫 번째 예제보다 더 효율적입니다. 이 코드에서는 round() 문을 전혀 사용하지 않았기 때문입니다. 반면, 반올림된 값을 코드의 다른 부분에서 계속 사용해야 한다면 문자열 포매팅 문법은 실용적이지 않습니다.
참고: f-string으로 더 간결하게
파이썬 3.6 이상을 사용한다면 f-string을 활용해 같은 결과를 더욱 간결하게 얻을 수 있습니다:
print(f"각 친구는 저녁 식사비로 ${cost_per_friend:0.2f}를 내야 합니다.")
마치며
값을 소수점 두 자리로 반올림하는 가장 일반적인 방법은 다음 두 가지입니다:
round()메서드 사용하기- 문자열 포매팅(
.format(), f-string) 사용하기
첫 번째 방법은 숫자를 반올림해야 하는 모든 상황에 적합합니다. 두 번째 방법은 값을 문자열에 표시하기 위해 반올림하는 경우, 그리고 파이썬 3.x 이상을 사용하는 경우에만 동작합니다.
이제 여러분도 파이썬 전문가처럼 코드에서 값을 소수점 두 자리로 반올림할 준비가 되었습니다!