일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- GIT
- Java
- dataframe
- 파이썬
- Python
- Tkinter
- Google Excel
- google apps script
- gas
- Apache
- numpy
- Google Spreadsheet
- matplotlib
- c#
- SQL
- math
- PySpark
- Kotlin
- array
- string
- Redshift
- Excel
- Mac
- django
- Github
- hive
- PostgreSQL
- PANDAS
- list
- Today
- Total
달나라 노트
Python math : ceil, floor, round (올림, 내림, 반올림) 본문
먼저 python의 기본 반올림 함수로 round 가 있습니다.
round(number, digit)
number --> 반올림을 적용할 숫자입니다.
digit --> 반올림 하여 얻은 결과에 소수점이 몇개나 있을지에 대한 숫자입니다. 이것의 의미는 아래 예시에서 보겠습니다.
print(round(1738.7926)) # 1 --> 1739
print(round(1738.7926, 0)) # 2 --> 1739.0
print(round(1738.7926, 1)) # 3 --> 1739.8
print(round(1738.7926, 2)) # 4 --> 1739.79
print(round(1738.7926, 3)) # 5 --> 1739.793
print(round(1738.7926, -1)) # 6 --> 1740
print(round(1738.7926, -2)) # 7 --> 1700
print(round(1738.7926, -3)) # 8 --> 2000
예시를 보면 위와 같습니다.
1. round에 number만 적으면 자동으로 digit은 0으로 보면 됩니다.
소수점 첫재 자리에서 반올림하여 소수점이 아예 없어진걸 볼 수 있죠.
2. round에서 digit을 0으로 입력하면 반올림 후 소수점이 하나도 없게 하겠다는 뜻이므로 소수점 첫번째 자리에서 반올림합니다.
따라서 소수점 첫째 자리에서 반올림해서 1739가 반환된걸 볼수있죠.
3. round에서 digit = 1이면 반올림 후 소수점을 1개만 남겨야하니까 소수점 둘째자리에서 반올립합니다.
4. round에서 digit = 2이면 반올림 후 소수점을 2개만 남겨야하니까 소수점 셋째자리에서 반올립합니다.
5. round에서 digit = 3이면 반올림 후 소수점을 3개만 남겨야하니까 소수점 넷째자리에서 반올립합니다.
6. round에서 digit = -1이면 반올림 후 소수점을 -1개 남긴다는 뜻입니다. 이 말은 반올림 후 십의자리 이상만 남아있게 하겠다는 겁니다. 즉, 정수 부분의 일단위 자리에서 반올림합니다.
따라서 1738.7928의 정수부분 일의 자리수 8에서 반올림하여 1740이 됩니다.
7. round에서 digit = -2이면 반올림 후 소수점을 -2개 남긴다는 뜻입니다. 이 말은 반올림 후 백의자리 이상만 남아있게 하겠다는 겁니다. 즉, 정수 부분의 십단위 자리에서 반올림합니다.
따라서 1738.7928의 정수부분 십의 자리수 3에서 반올림하여 1700이 됩니다.
8. round에서 digit = -3이면 반올림 후 소수점을 -2개 남긴다는 뜻입니다. 이 말은 반올림 후 천의자리 이상만 남아있게 하겠다는 겁니다. 즉, 정수 부분의 백단위 자리에서 반올림합니다.
따라서 1738.7928의 정수부분 백의 자리수 7에서 반올림하여 2000이 됩니다.
Python의 math library에는 ceil method라는 것이 존재합니다.
ceil method는 주어진 숫자와 같은 정수 또는 주어진 숫자보다 큰 가장 가까운 정수를 return합니다.
math.ceil(number)
number --> ceil을 적용할 숫자입니다.
import math
print(math.ceil(5)) # 1 --> 5
print(math.ceil(5.7928)) # 2 --> 6
print(math.ceil(5.228)) # 3 --> 6
print(math.ceil(-5.7928)) # 4 --> -5
print(math.ceil(-5.228)) # 5 --> -5
ceil에서 중요한건 '주어진 숫자와 같은 정수 또는 주어진 숫자보다 크며 가장 가까운 정수를 반환한다.' 입니다.
1. 5는 그 자체가 정수이므로 5와 동일한 5가 반환됩니다.
2. 5.7928보다 크면서 5.7928에 가장 가까운 정수는 6입니다.
3. 5.228보다 크면서 5.228에 가장 가까운 정수는 6입니다.
4. -5.7928보다 크면서 -5.7928과 가장 가까운 정수는 -5입니다. 음수이기 때문에 -5.7928보다 큰 정수는 -6이 아닌 -5라는 것에 주의합시다.
5. -5.228보다 크면서 -5.228과 가장 가까운 정수는 -5입니다. 음수이기 때문에 -5.228보다 큰 정수는 -6이 아닌 -5라는 것에 주의합시다.
Python의 math library에는 floor method라는 것이 존재합니다.
floor method는 주어진 숫자와 같은 정수 또는 주어진 숫자보다 작은 가장 가까운 정수를 return합니다.
math.floor(number)
number --> floor를 적용할 숫자입니다.
import math
print(math.floor(5)) # 1 --> 5
print(math.floor(5.7928)) # 2 --> 5
print(math.floor(5.228)) # 3 --> 5
print(math.floor(-5.7928)) # 4 --> -6
print(math.floor(-5.228)) # 5 --> -6
floor에서 중요한건 '주어진 숫자와 같은 정수 또는 주어진 숫자보다 작으며 가장 가까운 정수를 반환한다.' 입니다.
1. 5는 그 자체가 정수이므로 5와 동일한 5가 반환됩니다.
2. 5.7928보다 작으면서 5.7928에 가장 가까운 정수는 5입니다.
3. 5.228보다 작으면서 5.228에 가장 가까운 정수는 5입니다.
4. -5.7928보다 작으면서 -5.7928과 가장 가까운 정수는 -6입니다. 음수이기 때문에 -5.7928보다 작은 정수는 -5가 아닌 -6이라는 것에 주의합시다.
5. -5.228보다 작으면서 -5.228과 가장 가까운 정수는 -6입니다. 음수이기 때문에 -5.228보다 작은 정수는 -5가 아닌 -6이라는 것에 주의합시다.
'Python > Python math' 카테고리의 다른 글
Python math : sqrt() (제곱근) (0) | 2022.11.08 |
---|---|
Python math : pow() (거듭제곱, power) (0) | 2022.11.08 |
Python math : fmod() (나머지, 나머지 구하기, remainder) (0) | 2022.11.08 |
Python math : fabs (절대값) (0) | 2022.11.08 |
Python math : log, log2, log10 (python log 함수, python ln, 자연로그, numpy.log, numpy.log2, numpy.log10) (0) | 2022.01.16 |