본문 바로가기
코딩라이브러리/파이썬

파이썬 소수점 버림 trunc() floor() (with 백준 10869)

by 유니네 라이브러리 2024. 5. 15.

소수점 버림을 하고 싶을 때,

  • math 수학 모듈 중 trunc(), floor() 함수 사용
  • 기능이 비슷하나, 양수건 음수건 소수점은 무조건 버리고 싶으면 trunc() 사용
#소수점 버리기 방법 1 : trunc()
#trunc(x) : 소수 부분을 제거하고 정수 부분만 남겨두고 x를 반환. 이는 0으로 반올림. 
#trunc()는 양수 x에 대해 Floor()와 동일하고 음수 x에 대해 ceil()과 동일.
import math
#양수인 경우 몫만 놔두고 소수점 버림
print(math.trunc(2.5)) # 2
#음수인 경우 몫만 놔두고 소수점 버림
print(math.trunc(-2.5)) # 2

#소수점 버리기 방법 2 : floor()
#floor(x) : x보다 작거나 같은 가장 큰 정수인 x의 floor를 반환   
import math
#양수인 경우 몫만 놔두고 소수점 버림
print(math.floor(2.5)) # 2
#음수인 경우 값보다 작거나 같은 것중의 가장 큰 수를 반환하여 -3 반환
print(math.floor(-2.5)) # -3

 

▶ 소수점 버림 백준 문제 풀이

#두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 
#두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)
#첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.
import math
inpList = input().split(" ")

while True:
    #1 ≤ A, B ≤ 10,000 의 validation check
    if (int(inpList[0]) >= 1 and int(inpList[1]) <= 10000):
        plusSum = int(inpList[0]) + int(inpList[1])
        print(plusSum)
        minusSum = int(inpList[0]) - int(inpList[1])
        print(minusSum)
        multipSum = int(inpList[0]) * int(inpList[1])
        print(multipSum)
        #x와 y의 정수로 내림한 몫 연산 // 을 사용하지 않고 trunc() 소수점 버림으로 계산
        divSum = int(inpList[0]) / int(inpList[1])
        print(math.trunc(divSum))
        restSum = int(inpList[0]) % int(inpList[1])
        print(restSum)
        break
    else:
        inpList = input().split(" ")

 

▷ 파이썬 자습서 참고

 

math — Mathematical functions

This module provides access to the mathematical functions defined by the C standard. These functions cannot be used with complex numbers; use the functions of the same name from the cmath module if...

docs.python.org