강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

오벽님의 프로필 이미지
오벽

작성한 질문수

반올림 (ex: 5.49분) 30초 이상이면 올림, 30초 미만이면 버림

작성

·

51

·

수정됨

0

# 반올림 (ex: 5.49분) 30초 이상이면 올림, 30초 미만이면 버림

value = 5.49

round(value)

0.49만 인덱싱 해서 60을 곱해 30초 이상인지 확인해야하는데, 어떻게 인덱싱 할 수 있을까요?

value - int(value)

이런 식으로 소수부만 남기는 방식을 택하는건지 소수부만 인덱싱이 가능한지 궁금합니다!

아래는 제가 만든 코드입니다!

value = 5.49

under = value - int(value)

if under*60 >=30:

print(int(value) + 1)

else:

print(int(value))

 

0.49*60 = 29.4이기에 5로 잘 출력은 됩니다만.. 너무 번거롭게 접근한게 아닌가해서 질문드립니다!

아 그리고 round 이외에 올림, 내림 함수는 따로 있는지 궁금합니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

오벽님께서 작성해주신 방법은 소수부를 얻기 위한 정확한 방법입니다. value - int(value)를 통해 소수점 이하의 숫자만 추출하시고, 이를 활용하여 조건에 맞게 반올림을 하시는 방식이 적절합니다. 파이썬에서는 올림과 내림에 관련된 함수를 추가로 제공합니다.

  1. 올림하기: math.ceil()
  2. 내림하기: math.floor()

이 두 함수를 사용하시려면, math 모듈을 임포트하셔야 합니다. 예를 들어:

import math

value = 5.49
decimal_part = value - int(value)

if decimal_part * 60 >= 30:
    result = math.ceil(value)
else:
    result = math.floor(value)

print(result)

이렇게 하면 math.ceil()math.floor()를 사용하여 보다 명확하게 코드를 작성할 수 있습니다. 현재 사용하고 계신 로직도 적절하지만, 이 방법도 고려해보세요!

이미지나 추가적인 정보가 필요하시다면 아래 URL을 참고해주세요:

도움이 되었길 바랍니다! 추가적으로 궁금한 사항이 있으면 언제든지 문의 해주세요. 😊

오벽님의 프로필 이미지
오벽

작성한 질문수

질문하기