python : 반올림

리로린·2023년 6월 9일

반올림을 하는 방법
: round와 int의 차이를 구분 할 줄 알면 된다. 아주 간단한 것이나 한 코딩테스트에서 답을 결정짓는 요인으로 나와 서술한다.

  1. 소수 자리 반올림:

round() 함수의 두 번째 인자를 사용하여 소수 자리수를 제한할 수 있다.이때 소수 자리 또한 지정 가능하다. 예를 들어, round(3.14159, 2)는 3.14를 반환한다. 이렇게하면 소수점 이하 자리수를 원하는 만큼 제한할 수 있다.

num = 3.14159

# 소수 자리 반올림 (둘째 자리까지)
rounded_num = round(num, 2)
print(rounded_num)  # 3.14
  1. 내림과 올림:

Python의 math 모듈은 math.floor()와 math.ceil() 함수를 사용하여 각각 내림과 올림을 수행할 수 있다.
math.floor() 함수는 입력된 숫자보다 작거나 같은 가장 큰 정수를 반환하고, math.ceil() 함수는 입력된 숫자보다 크거나 같은 가장 작은 정수를 반환합니다.

import math

num = 3.7

# 내림
floor_num = math.floor(num)
print(floor_num)  # 3

# 올림
ceil_num = math.ceil(num)
print(ceil_num)  # 4
  1. 정밀한 소수 자리 반올림 (decimal 모듈 사용):
from decimal import Decimal, ROUND_HALF_UP

num = Decimal('3.14159')

# 소수 자리 반올림 (천분의 일 자리까지)
rounded_num = num.quantize(Decimal('0.0001'), rounding=ROUND_HALF_UP)
print(rounded_num)  # 3.1416
  • 여기서 사용하는 quantize()는 decimal 모듈에서 제공하는 메서드로, 소수 자리 반올림을 수행하는 데 사용된다. 이 메서드는 Decimal 객체의 값을 지정된 자릿수로 반올림한다.

  • decimal만 물론 독단적으로도 사용 할 수 있다. 다만 위에는 반올림을 위해 decimal을 이용해 quantize를 사용하는 것이다.
    quantize() 메서드는 정확한 10진수 연산을 지원하는 decimal 모듈에서 정밀한 반올림 연산을 수행할 때 유용하게 사용된다.

  • decimal만 사용 했을 때는 연산으로 다음과 같이 사용 할 수 있다.

from decimal import Decimal

num1 = Decimal('0.1')
num2 = Decimal('0.2')

result = num1 + num2
print(result)  # 0.3

int도 반올림인가 ? 아니다.

int() 함수는 반올림을 수행하지 않는다. int() 함수는 소수점 아래를 버리고 정수 부분만을 반환한다. 따라서, 소수를 int() 함수로 변환하면 내림을 수행한다.
예를 들어, int(3.14)는 3을 반환한다.

profile
리로린의 블로그

0개의 댓글