[Python] 파이썬 소수점 자리수 제한 방법 3가지
안녕하세요. BlockDMask입니다.
오늘은 파이썬에서 소수점 자릿수를 제한하는 방법에 대해 알아보겠습니다.
숫자 출력을 깔끔하게 정리하거나, 반올림이 필요한 경우 매우 유용한 기능입니다.
초보자도 쉽게 이해할 수 있도록 예제와 결과를 함께 제공합니다.
<목차>
- 1. round 함수를 통해서 소수점 자리수 반올림 하기
- 2. format 서식 지정을 통해서 소수점 자리수 조절하기
- 3. f-string 서식 지정을 통해서 소수점 자리수 제한하기
- 💡 추가 팁: decimal 모듈로 정밀한 소수점 반올림
1. round 함수로 소수점 관리하기
round() 함수는 소수를 반올림할 때 사용하는 파이썬 내장 함수입니다.
두 번째 인자로 자릿수를 지정하면 해당 소수점 위치에서 반올림이 가능합니다.
a = round(3.14159) # 3
b = round(3.14159, 0) # 3.0
c = round(3.14159, 1) # 3.1
d = round(3.14159, 2) # 3.14
e = round(3.14159, 3) # 3.142
f = round(3.14159, 4) # 3.1416
print(f"BlockDMask example - round(3.14159) : {a}")
print(f"BlockDMask example - round(3.14159, 0) : {b}")
print(f"BlockDMask example - round(3.14159, 1) : {c}")
print(f"BlockDMask example - round(3.14159, 2) : {d}")
print(f"BlockDMask example - round(3.14159, 3) : {e}")
print(f"BlockDMask example - round(3.14159, 4) : {f}")
BlockDMask example - round(3.14159) : 3
BlockDMask example - round(3.14159, 0) : 3.0
BlockDMask example - round(3.14159, 1) : 3.1
BlockDMask example - round(3.14159, 2) : 3.14
BlockDMask example - round(3.14159, 3) : 3.142
BlockDMask example - round(3.14159, 4) : 3.1416
설명: round는 자릿수에 따라 결과를 반올림합니다. 두 번째 인자가 없으면 정수로 변환됩니다.
2. format 함수로 소수점 자리수 제한하기
format() 함수는 문자열 포맷 지정 기능을 제공하며, 출력할 숫자의 소수점 자릿수를 쉽게 지정할 수 있습니다.
a = "DMask format 1 : {:.2f}".format(1.987654)
b = "DMask format 2 : {:.2f} / {:.3f}".format(2.3456, 7.89123)
c = "DMask format 3 : {0:.1f} / {1:.1f}".format(10.1234, 20.5678)
d = "DMask format 4 : {1:.2f} / {0:.1f}".format(5.54321, 8.9999)
print(a)
print(b)
print(c)
print(d)
DMask format 1 : 1.99
DMask format 2 : 2.35 / 7.891
DMask format 3 : 10.1 / 20.6
DMask format 4 : 9.00 / 5.5
설명: {:.2f}는 소수점 둘째 자리까지 출력하고, 셋째 자리에서 반올림합니다. 자리 지정과 위치 교환도 가능합니다.
3. f-string을 이용한 소수점 제한
파이썬 3.6 이상부터 사용 가능한 f-string을 활용하면 더 간단하게 소수점 자릿수를 조절할 수 있습니다.
pi = 3.14159265
score = 98.76543
print(f'BlockDMask f-string 1 : {pi:.0f}')
print(f'BlockDMask f-string 2 : {pi:.2f}')
print(f'BlockDMask f-string 3 : {pi:.4f}')
print(f'BlockDMask f-string 4 : {score:.1f}')
print(f'BlockDMask f-string 5 : {score:.3f}')
BlockDMask f-string 1 : 3
BlockDMask f-string 2 : 3.14
BlockDMask f-string 3 : 3.1416
BlockDMask f-string 4 : 98.8
BlockDMask f-string 5 : 98.765
설명: f"문자열 {변수:.2f}" 형식으로 소수점 제한이 가능하며, 가독성이 뛰어나 초보자에게 특히 유용합니다.
💡 추가 팁: decimal 모듈로 정밀한 소수점 반올림
round() 함수는 일부 경우 부동소수점 오차로 인해 예상과 다른 결과를 낼 수 있습니다.
정확한 반올림이 필요할 땐 decimal 모듈을 사용하는 것이 좋습니다.
from decimal import Decimal, ROUND_HALF_UP
num = Decimal("2.675")
rounded = num.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(f"정밀 계산 결과: {rounded}")
정밀 계산 결과: 2.68
설명: 일반 round는 일부 부동소수점 표현 오류가 발생할 수 있지만, Decimal은 정확한 계산이 가능합니다.
이상으로 파이썬에서 소수점 자리수를 제한하는 3가지 방법(round(), format(), f-string)과 추가 팁까지 알아보았습니다.
용도에 따라 적절한 방법을 선택해서 사용해보세요.
오늘도 읽어주셔서 감사합니다. - BlockDMask
댓글
댓글 쓰기