숫자형 중 실수형의 경우 보통 소수를 표현할 때 사용합니다.
소수는 지정 자릿 수 기준으로 내림, 올림, 버림, 반올림을 할 수 있는데요
각각에 사용되는 함수는 math의 floor, trunc, ceil 그리고 round 입니다.
소수점을 특정 자리 수 기준으로 자를 때 사용하는 방식으로는
format(), "{}".format(), f-string 이 있습니다.
반올림인 round의 경우 half to even 원칙이 적용된다고 하는데요
함께 살펴보겠습니다.
소수점 내림, 버림, 올림
소수를 내림, 올림, 버림에 사용되는 함수는 아래와 같습니다.
사용을 위해서는 math를 import 받아야 합니다.
- 내림 : math.floor
- 올림 : math.ceil
- 버림 : math.trunc
아래는 예제이고, 주석으로 표시관 값은 출력 결과입니다.
import math
print(math.floor(3.5)) # 3
print(math.ceil(3.5)) # 4
print(math.trunc(3.5)) # 3
소수점 반올림
소수를 반올림에 사용되는 함수는 round입니다.
하나의 매개변수만 사용할 경우 소수를 정수로 처리해 주고
두 개의 매개변수를 사용할 경우, 두 번째 매개변수를 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)으로 활용합니다.
아래는 인터프리터를 사용해 출력해 본 결과입니다.
>>> round(3.555)
4
>>> round(3.555, 2)
3.56
round의 half to even 원칙
python의 round는 저희가 일반적으로 알고 있는 반올림과 조금 다르게 처리됩니다.
python의 round는 half to even 원칙을 채택하고 있습니다.
half to even이란 반올림을 할 때, 반올림하려는 자리 수 앞자리가 짝수가 되게 처리한다는 의미입니다.
즉, 3.5인 경우 정수자리로 반올림한다고 했을 때 4가 되고 2.5의 경우 2가 됩니다.
아래는 예제와 출력 결과입니다.
print(round(1.5)) # 2
print(round(2.5)) # 2
print(round(3.5)) # 4
print(round(4.5)) # 4
소수점 자르기
소수점을 사용하다 보면, 특정 자리 수에서 소수점을 잘라야 하는 경우가 생깁니다.
소수점을 자를 때 주로 사용되는 방식은 아래 세 가지입니다.
- format()
- "{}".format()
- f-string
위 방식을 사용할 때 '.(숫자)f' (ex. '.1f') 와 같은 표현을 볼 수 있는데
이는 명시한 자리 수까지 소수점 표현을 하겠다는 의미입니다.
두 번째 방식인 "{}".format()의 경우 format에 여러 개의 매개변수를 넣을 수 있으며
표현식 {숫자, .자리수f}의 첫 번째 항목에서 format 안 여러 개 값 중 어떤 값을 표현할 것인지 직접 정해서 처리할 수 있습니다.
아래는 예제이며 주석은 출력 결과입니다.
참고로, formatting 한 결과는 모두 string (문자열) type 입니다.
print(format(1.25, ".1f")) # 1.2
print(type(format(1.25, ".1f"))) # <class 'str'>
print("{:.1f}".format(1.25)) # 1.2
print("첫 번째 자리까지 - 2번째 숫자 {1:.1f}".format(1.25, 100.111)) # 첫 번째 자리까지 - 2번째 숫자 100.1
print(f"{1.25:.1f}") # 1.2
print(f"첫 번째 자리까지 {1.25:.1f}") # 첫 번째 자리까지 1.2
[ 참고 ]
책 Doit! 점프 투 파이썬
사이트 Python Documentation (https://docs.python.org/)
'Python > Python 기초 배우기' 카테고리의 다른 글
[Python] 자료형 - 숫자형 최대값(Max), 최소값(Min) (0) | 2023.01.12 |
---|---|
[Python] 자료형 - 숫자형의 종류, 정수 - 진수 변환 (0) | 2023.01.11 |
댓글