파이썬 일의자리 버림 - paisseon il-uijali beolim

동영상 대본

여기 4개의 수를 일의 자리와 십의 자리에서 반올림할 겁니다 그 전에 잠깐 동영상을 멈추고 지금 혼자 먼저 풀어보세요 두 개로 나눠서 한 쪽에는 일의 자리에서 반올림한 것을 다른 쪽에는 십의 자리에서 반올림한 것을 적을겁니다 154 부터 해봅시다 154보다 큰 10의 배수는 얼마일까요? 160입니다 그리고 154보다 작은 10의 배수는 150입니다 이제 154를 160으로 올림하거나 150으로 내림하겠습니다 일의 자리를 반올림할 때에는 일의 자리 숫자를 살펴보면 됩니다 반올림되는 십의 자리의 오른쪽이 일의 자리입니다 일의 자리의 숫자를 보면 4는 5보다 작기 때문에 150으로 내림해야 합니다 이번에는 같은 수인 154를 십의 자리에서 반올림해 봅시다 먼저 154보다 큰 100의 배수를 알아야 합니다 160은 100의 배수가 아닙니다 154보다 큰 100의 배수는 200입니다 그럼 154보다 작은 100의 배수는 무엇일까요? 100 입니다 십의 자리에서 반올림해야 할 경우 반올림되는 백의 자리의 오른쪽에 있는 십의 자리를 봅니다 해당 수가 5 혹은 5보다 크면 올림을 해주고 5보다 작으면 내림을 합니다 여기서는 십의 자리가 정확히 5이기 때문에 올림을 해줍니다 일의 자리에서 반올림할 때는 그 수가 4라서 내림을 한 반면 십의 자리에서 반올림할 때는 그 수가 5라서 200으로 올림을 했습니다 더 풀어봅시다 이번에는 4,674를 볼게요 4,674보다 큰 10의 배수는 4,680입니다 4,674보다 작은 10의 배수는 4,670입니다 여기서는 10의 배수만 생각해야 하는 것을 잊지 마세요 이제 올려야 할까요? 내려야 할까요? 일의 자리에서 반올림할 때 올림을 하면 십의 자리가 8 내림을 하면 십의 자리가 7이 됩니다 일의 자리를 확인하여 쉽게 분별할 수가 있습니다 일의 자리 숫자가 5 혹은 5보다 크다면 올림을 해주고 5보다 작으면 내림을 합니다 여기서는 5보다 작기 때문에 내림하여 4,670이 됩니다 이번에는 같은 숫자를 십의 자리에서 반올림해 봅시다 4,674보다 작은 100의 배수는 무엇일까요? 4,674보다 작은 100의 배수는 4,600입니다 4,674보다 큰 100의 배수는 4700입니다 십의 자리에서 반올림할 때 십의 자리 숫자를 살펴봐야 합니다 십의 자리 숫자가 5 혹은 5보다 클 경우 반올림하면 4,700이 됩니다 이제 9,995를 풀어봅시다 아직 혼자 풀어보지 않았다면 동영상을 멈추고 먼저 해보세요 9,995을 해볼게요 9,995보다 작은 10의 배수는 얼마인가요? 9,995보다 작은 10의 배수는 9,990입니다 그렇다면 큰 10의 배수는 얼마인가요? 9,995보다 큰 10의 배수는 10,000입니다 이 경우 1,0000은 100의 배수 혹은 1,000의 배수 10,000의 배수라고 생각할 수 있습니다 다 맞습니다 일단 9,995보다 큰 10의 배수는 10,000입니다 9,995에서 조금 더하면 10,000이 됩니다 9,995보다 작은 10의 배수는 9,990입니다 9,990보다 10이 더 많으면 10,000입니다 그렇다면 어떻게 반올림 해야 할까요? 일의 자리에서 반올림할 때에는 일의 자리 숫자를 살펴봅니다 일의 자리가 5 혹은 5보다 크면 반올림하여 10,000이 됩니다 이번에는 십의 자리에서 반올림해 봅시다 9,995보다 작은 100의 배수는 얼마일까요? 9,900입니다 9,995 보다 큰 100의 배수는? 9,900에 100을 더해서 10,000 을 구하는 방법도 있어요 이제 어떻게 해야할까요? 반올림될 자리는 백의 자리이므로 일의 자리는 무시하고 십의 자리에서 반올림을 해봅시다 백의 자리의 오른쪽에 있는 십의 자리를 볼거에요 십의 자리 숫자가 5 혹은 5보다 크면 올림을 합니다 5보다 작으면 내림을 합니다 5보다 크므로 반올림하면 10,000이 됩니다 마지막으로 8,346을 풀어봅시다 8,346 보다 작은 10의 배수는 8,340 8,346 보다 큰 10의 배수는 8,350 일의 자리에서 반올림할 때 일의 자리 숫자를 확인합니다 일의 자리 숫자가 5보다 크므로 올림합니다 이제 십의 자리를 반올림해 봅시다 8,346보다 큰 100의 배수는 8,400 8,346보다 작은 100의 배수는 8,300 십의 자리에서 반올림을 하므로 올림을 하면 백의 자리가 4가 되고 내림을 하면 백의 자리는 그대로 3 입니다 대신에 0으로 끝나죠 십의 자리를 반올림할 때는 십의 자리의 숫자를 확인합니다 십의 자리 숫자가 5보다 작아서 8,300으로 내림해줍니다 일의 자리에서 반올림할 때에는 8,350으로 올림을 해준다는 것을 명심하세요 십의 자리에서 반올림할 때는 8,300으로 내리는 겁니다

category Python 2019. 3. 7. 19:30

실수를 표현할때, 자리수를 원하는대로 조절하고, 정수의 올림 반올림을 하고싶을때 사용하는 함수가있다.

반올림

소수점을 n번째 까지만 표현하고 반올림을 하고싶을때, round 함수를 사용하면된다.


round(실수,n)


>>> n = 7/15
>>> n
0.4666666666666667

>>> round(n,2)
0.47

>>> round(n,4)
0.4667

>>> round(n)
0

>>> type(round(n))
<class 'int'>

원하는 자리수만 표현이 가능하다. 두번째매개변수를 비우면 소수점 첫번째자리를 반올림하여 나타낸다.

>>> round(1.77777777777777)
2

소수점이아닌 정수도 반올림을 할 수 있다.

>>> round(12345,-1)
12340

>>> round(12345,-2)
12300

자리수에 음수를 입력하여 정수자리에 해당하는 곳에서 반올림이 가능하다.

올림, 내림, 버림

올림,내림,버림을 하기위해서 math 클래스안의 ceil, floor, trunc 함수를 사용해야한다.


math.ceil(i) : 올림

math.floor(i) : 내림

math.trunc(i) : 버림


import math

>>> math.ceil(12.2)
13
>>> math.ceil(12.6)
13
>>> math.floor(12.2)
12
>>> math.floor(12.6)
12
>>> math.trunc(12.2)
12
>>> math.trunc(12.6)
12


파이썬 넘파이 반올림, 올림, 내림 함수 : np.round, np.ceil, np.floor, np.trunc

이번 포스팅에서는 파이썬 넘파이에서 원하는 소수점 자릿수까지

반올림, 올림, 내림을 할 수 있는 함수들의 사용법과 예시에 대해서

정리해보도록 하겠습니다.

넘파이 반올림 함수 : np.round, np.around

먼저, 넘파이에서 반올림을 지원하는 np.round 함수를 살펴보겠습니다.

참고로, np.around 함수는 np.round와 완전히 동일한 함수라고 보셔도

무관하며, 여기서는 np.round로 예시 코드를 보여드리겠습니다.

np.round 함수는 np.round(숫자, 원하는 자릿수) 형태로 input을 주시면 되며,

원하는 자릿수를 지정하지 않으면, 기본적으로 일의 자리까지 반올림이 됩니다.

import numpy as np

# 숫자 1개 대상 예시
np.round(3.43) # 3.0

# 소수점 첫째자리 반올림
np.round(3.43, 1) # 3.4

# 십의자리까지 반올림
np.round(13.5, -1) # 10.0

np.round 함수에서는 array 전체의 값을 대상으로 반올림을 진행하는 것도

가능합니다. 아래 예시를 살펴보겠습니다.

파이썬 일의자리 버림 - paisseon il-uijali beolim

참고로, 뒤에서 설명할 올림, 내림과 관련된 함수도 모두 array를

input으로 받는 것이 가능합니다.

넘파이 올림 함수 : np.ceil

일의 자리를 기준으로 올림을 진행하는 함수는 np.ceil 함수입니다.

다만, 이 함수는 올림을 진행하는 자릿수를 따로 지정하는 것은 불가능한데,

np.ceil(원하는 수 * (10 ** 자릿수)) / (10 ** 자릿수) 형태로 간접적으로

원하는 소수점 자릿수까지 올림을 진행하는 것은 가능합니다.

# 일의자리까지 올림
np.ceil(3.43) # 4.0
np.ceil(5) # 5.0

# 소수점 첫째자리까지 올림
# np.ceil(3.43, 1) 형태는 미지원

# 아래 형태로 사용
np.ceil(3.43 * 10) / 10 # 3.5

# 소수점 둘째자리까지 올림
np.ceil(3.433 * 100) / 100 # 3.44

np.ceil(3.43, 1) 형태는 불가능하지만,

np.ceil(3.43 * 10) / 10 형태로는 사용이 가능함을 참고해주세요.

넘파이 내림(버림) 함수 : np.floor vs np.trunc

넘파이에서 소수점 내림(버림)을 진행하는 함수는 np.floor와 np.trunc가

있습니다. 두 함수의 사용법은 np.ceil과 동일하며,

일의 자릿수가 아닌 다른 자릿수까지 내림을 원할 경우에는

np.ceil처럼 간접적인 방법으로 진행해야 합니다.

np.floor과 np.trunc의 차이는 음수를 input으로 받았을 때 나타나게 됩니다.

아래 예시 코드의 결과를 살펴보며 이해해보도록 하겠습니다.

# 일의자리까지 버림
np.floor(2.56) # 2.0
np.trunc(2.56) # 2.0

# 소수점 첫째자리까지 버림
np.floor(2.56 * 10) / 10 # 2.5
np.trunc(2.56 * 10) / 10 # 2.5

# 음수에서 버림 예시
np.floor(-1.5) # -2.0
np.trunc(-1.5) # -1.0

-1.5를 일의 자리까지 내림한 결과가 np.floor에서는 -2가 나왔지만,

np.trunc에서는 -1이 나왔음을 확인할 수 있었습니다.